{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Selenium模块爬取微信公众号“数据管道”\n",
    "\n",
    "## *PRD1*数据加值宣言\n",
    "\n",
    "<b>本项目产出自以Python+Selenium模块对微信公众号“数据管道”的所有发布文章（*共61页，532篇文章*）的时间，标题，以及文章url进行爬取挖掘的数据并根据文章标题拆分进行词频分析输出可视化词云。以解决对该微信公众号进行相关内容分析的需求。</b>\n",
    "\n",
    "* 关键词：数据管道\n",
    "* 页数：所有（1-61）\n",
    "* 类别数据：文章标题、发布时间、URL\n",
    "\n",
    "\n",
    "## *PRD2*数据加值\n",
    "\n",
    "产品核心价值：通过分析“数据管道”一公众号的发布内容，获取数据分析/数据处理相关学界/业界的新资讯，以词频分析来筛选关键词进行分析。\n",
    "\n",
    "\n",
    "<b>依本产品总结：</b>\n",
    "1. 数据相关行业（业界及学界）更多使用Python进行数据处理（Python出现次数最多）\n",
    "2. 数据库更多使用SQL\n",
    "3. 在数据分析中，常用Pandas以及NumPy\n",
    "4. 数据可视化时使用pyecharts较多\n",
    "5. “干货”“技巧”“最新”“代码”出现次数多，说明该公众号分享文章使用且新颖。\n",
    "6. 机器学习、数据分析也是热门的项目\n",
    "\n",
    "\n",
    "## 挖掘公众号的基本信息\n",
    "\n",
    "名称：数据管道\n",
    "\n",
    "类别：互联网相关\n",
    "\n",
    "文章数目：532\n",
    "\n",
    "内容类型：Python、数据分析、机器学习、数据科学\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 准备工作"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "'''\n",
    "阿里研究院\n",
    "阿里健康\n",
    "阿里巴巴商学院\n",
    "阿里数据\n",
    "\n",
    "腾讯金融科技\n",
    "腾讯研究院\n",
    "腾讯媒体研究院\n",
    "腾讯云启研究院\n",
    "酷鹅用户研究院\n",
    "'''\n",
    "公众号 = \"数据管道\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 149,
   "metadata": {},
   "outputs": [],
   "source": [
    "fn = { \"output\" : { \"公众号_htm_snippets\": \"/Users/autumnhui/Desktop/公众号/data_raw_src/公众号_htm_snippets_{公众号}.tsv\",\n",
    "                    \"公众号_df\": \"/Users/autumnhui/Desktop/公众号/data_raw_src/公众号_df_{公众号}.tsv\",\n",
    "                    \"公众号_xlsx\": \"/Users/autumnhui/Desktop/公众号/data_sets/公众号_url_{公众号}.xlsx\" } \\\n",
    "      }"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "heading_collapsed": true
   },
   "source": [
    "# 采集公众号（requests）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "hidden": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0\n",
      "5\n",
      "10\n",
      "15\n",
      "20\n"
     ]
    },
    {
     "ename": "NameError",
     "evalue": "name 'ExcelWriter' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-7-496c388f9d1d>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m     51\u001b[0m \u001b[0mtest\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mpd\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mDataFrame\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcolumns\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mname\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mdata\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mcontent_list\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m     52\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 53\u001b[1;33m \u001b[1;32mwith\u001b[0m \u001b[0mExcelWriter\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfn\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m\"output\"\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m\"公众号_xlsx\"\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0m公众号\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m\"蚂蚁金服科技_requests\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0mwriter\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m     54\u001b[0m     \u001b[0mtest\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mto_excel\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mwriter\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m     55\u001b[0m \u001b[1;31m# test.to_csv(\"../微信公众号爬虫_zhichao/南方周末.csv\",mode='a',encoding='utf-8')\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mNameError\u001b[0m: name 'ExcelWriter' is not defined"
     ]
    }
   ],
   "source": [
    "# 目标url\n",
    "\n",
    "import time\n",
    "import requests\n",
    "import pandas as pd\n",
    "import csv\n",
    "\n",
    "\n",
    "url = \"https://mp.weixin.qq.com/cgi-bin/appmsg\"\n",
    "\n",
    "# 使用Cookie，跳过登陆操作\n",
    "headers = {\n",
    "  \"Cookie\": \"pgv_pvi=7968112640; RK=dAxoOkmNPM; ptcz=5e911a8738788675abb010f85db7a6c13b0570811db08ebefce3d01adfff5127; tvfe_boss_uuid=35a8107e1f02cbf7; pgv_pvid=160875890; o_cookie=576726974; pgv_si=s7389809664; uin=o0576726974; skey=@biD9HkZPV; ptisp=ctc; ua_id=o954FR4YG9aIylgbAAAAAAG1mFSkee-v8r6HcCv6PUM=; cert=xdo33QVRQxDDEATQOxVPYZVSl8hcgbBw; noticeLoginFlag=1; xid=; openid2ticket_omd36wPk8CgeWUiAccw6ZoK6cfKM=V9b+6gaDppAhuzkBsqQ2cqmVOoVbPExAl/fu+rqQ2xk=; mm_lang=zh_CN; rewardsn=; wxtokenkey=777; uuid=3f563116b647ce9a578c8d004d3508a8; ticket=a4fe0acfed322dd3eff3a301d94afded6dac3be0; ticket_id=gh_b8ce1853cd9b; rand_info=CAESIIpFhkwqorHCev9Vkx8d1xoS/h28VHdI65d1I+hS8rYh; slave_bizuin=3252904960; data_bizuin=3509374721; bizuin=3252904960; data_ticket=6z/ln+jO+jKPoA5MKzm3D6Cbfkg41cD9D6v6HTaHq8//2C9Hk73W6LtQlNMXteTT; slave_sid=eWpTNFJYU0hHQUFtcUt1TnBGSEZDYU55bHJXX2hhTTlZa3hvcno4MFRNaGd2QUlIT2Vxb0xHUmRWc1RQV2txQkI3OXFlUXhuOWY1aGVYbWdvTGFpNzNhTTdNaGhaRWNWNmwzTmFMRWlEa25Pa0VkZGpwVGkxNTRUdmRTbEtpbGF2UFUwbEZJR0lHdnlBcDFs; slave_user=gh_b8ce1853cd9b; openid2ticket_oAc8s0T6rPCr8qnMO7SoANf_3jVI=LJrk/Pum+BnDCZRPacwc+RgFKJv/+2uJEUtvOa1gdTU=\",\n",
    "  \"User-Agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36\"}\n",
    "\n",
    "data = {\n",
    "    \"token\": \"1119521086\",\n",
    "    \"lang\": \"zh_CN\",\n",
    "    \"f\": \"json\",\n",
    "    \"ajax\": \"1\",\n",
    "    \"action\": \"list_ex\",\n",
    "    \"begin\": \"0\",\n",
    "    \"count\": \"5\",\n",
    "    \"query\": \"\",\n",
    "    \"fakeid\": \"MzI0Nzc3MTQyMw==\",\n",
    "    \"type\": \"9\",\n",
    "}\n",
    "\n",
    "\n",
    "\n",
    "content_list=[]\n",
    "\n",
    "for i in range(5):\n",
    "    data[\"begin\"] = i*5\n",
    "    print(data[\"begin\"])\n",
    "    time.sleep(3)\n",
    "    # 使用get方法进行提交\n",
    "    content_json = requests.get(url, headers=headers, params=data).json()\n",
    "#     print(content_json)\n",
    "    # 返回了一个json，里面是每一页的数据\n",
    "    for item in content_json[\"app_msg_list\"]:\n",
    "    # 提取每页文章的标题及对应的url\n",
    "        items = []\n",
    "        items.append(item[\"title\"])\n",
    "        items.append(item[\"link\"])\n",
    "        items.append(item[\"create_time\"])\n",
    "        content_list.append(items)\n",
    "\n",
    "\n",
    "name=['title','link','create_time']\n",
    "test=pd.DataFrame(columns=name,data=content_list)\n",
    "with pd.ExcelWriter(fn[\"output\"][\"公众号_xlsx\"].format(公众号=\"蚂蚁金服科技_requests\")) as writer:\n",
    "    test.to_excel(writer)\n",
    "\n",
    "# test.to_csv(\"../微信公众号爬虫_zhichao/南方周末.csv\",mode='a',encoding='utf-8')\n",
    "# print(\"保存成功\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 采集公众号（selenium）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "from lxml.html import fromstring\n",
    "import time\n",
    "from random import random\n",
    "\n",
    "# when selenium main_content is used\n",
    "# Parses an HTML document from a string constant.  Returns the root nood\n",
    "# root = fromstring(df.loc[1,\"html_snippets\"]) "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 使用Selenium\n",
    "* 要更改 opts.binary_location 至自己本地的Chrome浏览器，建议portable\n",
    "* Chrome浏览器 和 chromedriver.exe要同版本号到小数后一位\n",
    "* 要确保可以 开启浏览器机器人\n",
    "* 要确保浏览器机器人 可以打开网页 driver.get(\"https://mp.weixin.qq.com\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/autumnhui/anaconda3/lib/python3.7/site-packages/ipykernel_launcher.py:18: DeprecationWarning: use options instead of chrome_options\n"
     ]
    }
   ],
   "source": [
    "from selenium import webdriver\n",
    "from selenium.webdriver.common.desired_capabilities import DesiredCapabilities\n",
    "\n",
    "#caps=dict()\n",
    "#caps[\"pageLoadStrategy\"] = \"none\"   # Do not wait for full page load\n",
    "\n",
    "opts = webdriver.ChromeOptions()\n",
    "opts.add_argument('--no-sandbox')#解决DevToolsActivePort文件不存在的报错\n",
    "opts.add_argument('window-size=1920x3000') #指定浏览器分辨率\n",
    "opts.add_argument('--disable-gpu') #谷歌文档提到需要加上一这个属性来规避bug\n",
    "opts.add_argument('--hide-scrollbars') #隐藏滚动条, 应对些特殊页面\n",
    "#opts.add_argument('blink-settings=imagesEnabled=false') #不加载图片, 提升速度\n",
    "#opts.add_argument('--headless') #浏览器不提供可视化页面. linux下如果系统不支持可视化不加这条会启动失败\n",
    "\n",
    "opts.binary_location = r\"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome\" #\"H:\\_coding_\\Gitee\\InternetNewMedia\\CapstonePrj2016\\chromedriver.exe\"  \n",
    "\n",
    "# \"H:\\_coding_\\Gitee\\InternetNewMedia\\CapstonePrj2016\\chromedriver.exe\"  \n",
    "driver = webdriver.Chrome( chrome_options = opts) #desired_capabilities=caps,"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "driver.get(\"https://mp.weixin.qq.com\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 填表登入"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "selenium 的定位方法\n",
    "* find_element_by_id &ensp;&ensp;&ensp;  根据标签id定位\n",
    "* find_element_by_name   &ensp;&ensp;&ensp; 根据标签的name定位\n",
    "* find_element_by_xpath  &ensp;&ensp;&ensp; 根据xpath定位\n",
    "* find_element_by_link_text  &ensp;&ensp;&ensp; 通过文字链接来定位元素\n",
    "* find_element_by_partial_link_text  &ensp;&ensp;&ensp;  通过文字链接来定位元素\n",
    "* find_element_by_tag_name  &ensp;&ensp;&ensp;  根据标签的名字定位\n",
    "* find_element_by_class_name  &ensp;&ensp;&ensp; 通过class name 定位\n",
    "* find_element_by_css_selector  &ensp;&ensp;&ensp;  根据元素属性来定位"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "payload =  {\"account\": \"2421130300@qq.com\", \"password\": \"Qth321..\"}\n",
    "# payload =  {\"account\": \"NFUHacks@163.com\", \"password\": \"NFU706947580\"}\n",
    "driver.find_element_by_xpath('//div[@class=\"login__type__container login__type__container__scan\"]/a').click()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "WebDriver 常用方法：\n",
    "* clear()清楚文本\n",
    "* send_keys(values)模拟按键输入\n",
    "* click()模拟点击\n",
    "* submit模拟提交"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "driver.find_element_by_xpath('//form[@class=\"login_form\"]//input[@name=\"account\"]').clear()\n",
    "driver.find_element_by_xpath('//form[@class=\"login_form\"]//input[@name=\"account\"]').send_keys(payload['account'])\n",
    "driver.find_element_by_xpath('//form[@class=\"login_form\"]//input[@name=\"password\"]').clear()\n",
    "driver.find_element_by_xpath('//form[@class=\"login_form\"]//input[@name=\"password\"]').send_keys(payload['password'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "driver.find_element_by_xpath('//div[@class=\"login_btn_panel\"]/a').click()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 点选单"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "其他常用方法\n",
    "* size：返回元素的尺寸\n",
    "* text：获取元素的文本\n",
    "* get_attribute：获取属性值  &ensp;&ensp;&ensp; get_attribute('innerHTML')获取元素内的全部HTML\n",
    "* is_displayed()：设置该元素用户是否可见"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'展开'"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "element = driver.find_element_by_xpath('//a[@id=\"m_open\"]')\n",
    "element.click()\n",
    "main_content = element.get_attribute('innerHTML')\n",
    "main_content"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "driver.execute_script(\"window.scrollTo(0,document.body.scrollHeight)\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'https://mp.weixin.qq.com/cgi-bin/appmsg?begin=0&count=10&t=media/appmsg_list&type=10&action=list&token=1470812587&lang=zh_CN'"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "element = driver.find_element_by_xpath('//li[@title[contains(.,\"素材管理\")]]/a') \n",
    "# main_content = element.get_attribute('innerHTML')\n",
    "# main_content\n",
    "url2= element.get_attribute(\"href\")\n",
    "url2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "driver.get(url2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 新建图文消息"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "element = driver.find_element_by_xpath('//*[text()[contains(.,\"新建图文消息\")]]') \n",
    "main_content = element.get_attribute('innerHTML')\n",
    "main_content\n",
    "element.click()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['CDwindow-A762A721A0C185A3EADCCDB8BF89032F', 'CDwindow-5A68B128F4CE6AF328CB3935594D797E']\n"
     ]
    }
   ],
   "source": [
    "print (driver.window_handles)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 新建图文消息开了另一分视窗，所以要切换 switch_to \n",
    "driver.switch_to.window(driver.window_handles[-1])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 超链接"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                超链接              \n"
     ]
    }
   ],
   "source": [
    "element = driver.find_element_by_xpath('//*[text()[contains(.,\"超链接\")]]') \n",
    "main_content = element.get_attribute('innerHTML')\n",
    "print(main_content)\n",
    "element.click()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "选择其他公众号\n"
     ]
    }
   ],
   "source": [
    "# 点 选择其他公众号\n",
    "element = driver.find_element_by_xpath('//*[text()[contains(.,\"选择其他公众号\")]]') \n",
    "main_content = element.get_attribute('innerHTML')\n",
    "print(main_content)\n",
    "element.click()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "driver.find_element_by_xpath('//form//div[@class=\"inner_link_account_area\"]//input[@class=\"weui-desktop-form__input\"]').clear()\n",
    "driver.find_element_by_xpath('//form//div[@class=\"inner_link_account_area\"]//input[@class=\"weui-desktop-form__input\"]').send_keys(公众号)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<div class=\"weui-desktop-icon weui-desktop-icon__inputSearch weui-desktop-icon__small\"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M11.33 10.007l4.273 4.273a.502.502 0 0 1 .005.709l-.585.584a.499.499 0 0 1-.709-.004L10.046 11.3a6.278 6.278 0 1 1 1.284-1.294zm.012-3.729a5.063 5.063 0 1 0-10.127 0 5.063 5.063 0 0 0 10.127 0z\"></path></svg> <!----> <!----> <!----> <!----></div>\n"
     ]
    }
   ],
   "source": [
    "# 点放大镜搜\n",
    "element = driver.find_element_by_xpath('//button[@class=\"weui-desktop-icon-btn weui-desktop-search__btn\"]')\n",
    "main_content = element.get_attribute('innerHTML')\n",
    "print(main_content)\n",
    "element.click()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<li class=\"inner_link_account_item\"><div class=\"weui-desktop-vm_primary\"><img src=\"http://mmbiz.qpic.cn/mmbiz_png/YnV1icfkcN8aZVf6NSolWponXhrrT3Iyia0l6gWW6ibdLSeIQHaXKzpOGIYZDPNmv87iauDFjbvvYSO1pbVkxRTmrQ/0?wx_fmt=png\" class=\"inner_link_account_avatar\"> <strong class=\"inner_link_account_nickname\">数据管道</strong> <i class=\"inner_link_account_wechat\">微信号：adc9556</i></div> <div class=\"weui-desktop-vm_default inner_link_account_type\">订阅号</div></li><li class=\"inner_link_account_item\"><div class=\"weui-desktop-vm_primary\"><img src=\"http://mmbiz.qpic.cn/mmbiz_png/LD2kI0KlJlkr2NiauIySIocvqJ0XTkNc8AprUhqZSicWygBDI5pNibL7GbH038TOkXWic7AQZicNNiaveGvjwy3oGqvQ/0?wx_fmt=png\" class=\"inner_link_account_avatar\"> <strong class=\"inner_link_account_nickname\">管道数据</strong> <i class=\"inner_link_account_wechat\">微信号：未设置</i></div> <div class=\"weui-desktop-vm_default inner_link_account_type\">订阅号</div></li><li class=\"inner_link_account_item\"><div class=\"weui-desktop-vm_primary\"><img src=\"http://mmbiz.qpic.cn/mmbiz_png/IkcXibtY2OiaPdrico2qg2pR5Dib82MIzwInibFqe7nlgRZqRUibR0y61oyD3ONFz643wTaibYWOb3FDbyibcPb6xvV9Uw/0?wx_fmt=png\" class=\"inner_link_account_avatar\"> <strong class=\"inner_link_account_nickname\">管件大数据</strong> <i class=\"inner_link_account_wechat\">微信号：GJDSJ1</i></div> <div class=\"weui-desktop-vm_default inner_link_account_type\">订阅号</div></li><li class=\"inner_link_account_item\"><div class=\"weui-desktop-vm_primary\"><img src=\"http://mmbiz.qpic.cn/mmbiz_png/DicLq4XZYZvRR9goeWtBzd2PcJDB7FaNDicylffHib6n5NtFoq3yLNb1vh00bB3W8w2DZJxrUSpRl3iaib50QibBic4Dw/0?wx_fmt=png\" class=\"inner_link_account_avatar\"> <strong class=\"inner_link_account_nickname\">PIMC油气管道完整性</strong> <i class=\"inner_link_account_wechat\">微信号：wanzhengxing77</i></div> <div class=\"weui-desktop-vm_default inner_link_account_type\">订阅号</div></li><li class=\"inner_link_account_item\"><div class=\"weui-desktop-vm_primary\"><img src=\"http://mmbiz.qpic.cn/mmbiz_png/cibdudVK8YyuRfm5MVjmM9rVgHvMrITxWI78ZbIJbnTblFPlhzq6wUWo17L0kfWNfjxTuicWCFsxpuqZMhmiaGEWA/0?wx_fmt=png\" class=\"inner_link_account_avatar\"> <strong class=\"inner_link_account_nickname\">热力管道知识分享</strong> <i class=\"inner_link_account_wechat\">微信号：未设置</i></div> <div class=\"weui-desktop-vm_default inner_link_account_type\">服务号</div></li>\n"
     ]
    }
   ],
   "source": [
    "element = driver.find_element_by_xpath('//ul[@class=\"inner_link_account_list\"]')\n",
    "main_content = element.get_attribute('innerHTML')\n",
    "print(main_content)\n",
    "公众号SERP = main_content\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 解析\n",
    "root = fromstring(公众号SERP) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [],
   "source": [
    "主 = root.xpath('//li[@class=\"inner_link_account_item\"]')\n",
    "\n",
    "account_list = []\n",
    "for e in 主:\n",
    "    account_nickname = e.xpath('./div/strong[@class=\"inner_link_account_nickname\"]')[0].text\n",
    "    account_wechat = e.xpath('./div/i[@class=\"inner_link_account_wechat\"]')[0].text\n",
    "    account_img = e.xpath('./div/img/@src')[0]\n",
    "    account = {\"nickname\": account_nickname, \"wechat\": account_wechat, \"img\": account_img,}\n",
    "    account_list.append(account)\n",
    "\n",
    "df_account = pd.DataFrame(account_list)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>nickname</th>\n",
       "      <th>wechat</th>\n",
       "      <th>img</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>数据管道</td>\n",
       "      <td>微信号：adc9556</td>\n",
       "      <td>http://mmbiz.qpic.cn/mmbiz_png/YnV1icfkcN8aZVf...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>管道数据</td>\n",
       "      <td>微信号：未设置</td>\n",
       "      <td>http://mmbiz.qpic.cn/mmbiz_png/LD2kI0KlJlkr2Ni...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>管件大数据</td>\n",
       "      <td>微信号：GJDSJ1</td>\n",
       "      <td>http://mmbiz.qpic.cn/mmbiz_png/IkcXibtY2OiaPdr...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>PIMC油气管道完整性</td>\n",
       "      <td>微信号：wanzhengxing77</td>\n",
       "      <td>http://mmbiz.qpic.cn/mmbiz_png/DicLq4XZYZvRR9g...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>热力管道知识分享</td>\n",
       "      <td>微信号：未设置</td>\n",
       "      <td>http://mmbiz.qpic.cn/mmbiz_png/cibdudVK8YyuRfm...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      nickname              wechat  \\\n",
       "0         数据管道         微信号：adc9556   \n",
       "1         管道数据             微信号：未设置   \n",
       "2        管件大数据          微信号：GJDSJ1   \n",
       "3  PIMC油气管道完整性  微信号：wanzhengxing77   \n",
       "4     热力管道知识分享             微信号：未设置   \n",
       "\n",
       "                                                 img  \n",
       "0  http://mmbiz.qpic.cn/mmbiz_png/YnV1icfkcN8aZVf...  \n",
       "1  http://mmbiz.qpic.cn/mmbiz_png/LD2kI0KlJlkr2Ni...  \n",
       "2  http://mmbiz.qpic.cn/mmbiz_png/IkcXibtY2OiaPdr...  \n",
       "3  http://mmbiz.qpic.cn/mmbiz_png/DicLq4XZYZvRR9g...  \n",
       "4  http://mmbiz.qpic.cn/mmbiz_png/cibdudVK8YyuRfm...  "
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_account"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<div class=\"weui-desktop-vm_primary\"><img src=\"http://mmbiz.qpic.cn/mmbiz_png/YnV1icfkcN8aZVf6NSolWponXhrrT3Iyia0l6gWW6ibdLSeIQHaXKzpOGIYZDPNmv87iauDFjbvvYSO1pbVkxRTmrQ/0?wx_fmt=png\" class=\"inner_link_account_avatar\"> <strong class=\"inner_link_account_nickname\">数据管道</strong> <i class=\"inner_link_account_wechat\">微信号：adc9556</i></div> <div class=\"weui-desktop-vm_default inner_link_account_type\">订阅号</div>\n"
     ]
    }
   ],
   "source": [
    "element = driver.find_element_by_xpath('//ul[@class=\"inner_link_account_list\"]/li')\n",
    "main_content = element.get_attribute('innerHTML')\n",
    "print(main_content)\n",
    "element.click()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'\\n跳转_input = driver.find_element_by_xpath(\\'//span[@class=\"weui-desktop-pagination__form\"]/input\\')\\n跳转_a = driver.find_element_by_xpath(\\'//span[@class=\"weui-desktop-pagination__form\"]/a\\')\\n跳转_input.clear()\\n跳转_input.send_keys(2)\\n跳转_a.click()\\n'"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 跳转testing\n",
    "'''\n",
    "跳转_input = driver.find_element_by_xpath('//span[@class=\"weui-desktop-pagination__form\"]/input')\n",
    "跳转_a = driver.find_element_by_xpath('//span[@class=\"weui-desktop-pagination__form\"]/a')\n",
    "跳转_input.clear()\n",
    "跳转_input.send_keys(2)\n",
    "跳转_a.click()\n",
    "'''"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1, 61]\n",
      "False\n"
     ]
    }
   ],
   "source": [
    "# 跳转上限\n",
    "l_e = driver.find_elements_by_xpath('//label[@class=\"weui-desktop-pagination__num\"]')\n",
    "l_e_int  = [int(x.text) for x in l_e] \n",
    "print (l_e_int)\n",
    "print (l_e_int[0]==l_e_int[-1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61]\n"
     ]
    }
   ],
   "source": [
    "pages = list(range(l_e_int[0],l_e_int[-1]+1 ))\n",
    "#print(pages[0:2])\n",
    "pages = list(range(1,l_e_int[-1]+1 ))\n",
    "print(pages)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 循环/遍历"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 150,
   "metadata": {},
   "outputs": [],
   "source": [
    "# global varialbes \n",
    "html_raw = dict()\n",
    "main_content =\"\"\n",
    "element = None"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 151,
   "metadata": {},
   "outputs": [],
   "source": [
    "def process_pages (pages):\n",
    "    for p in pages:\n",
    "        print (p,end='\\t')\n",
    "\n",
    "        跳转_input = driver.find_element_by_xpath('//span[@class=\"weui-desktop-pagination__form\"]/input')\n",
    "        跳转_a = driver.find_element_by_xpath('//span[@class=\"weui-desktop-pagination__form\"]/a')\n",
    "        跳转_input.clear()\n",
    "        跳转_input.send_keys(p)\n",
    "        跳转_a.click()\n",
    "\n",
    "        time.sleep(3+2*random())\n",
    "\n",
    "        element = driver.find_element_by_xpath('//div[@class=\"inner_link_article_list\"]')\n",
    "        main_content = element.get_attribute('innerHTML')\n",
    "        #print(main_content)\n",
    "        html_raw[p] = main_content"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 152,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1\t2\t3\t4\t5\t6\t7\t8\t9\t10\t11\t12\t13\t14\t15\t16\t17\t18\t19\t20\t21\t22\t23\t24\t25\t26\t27\t28\t"
     ]
    },
    {
     "ename": "KeyboardInterrupt",
     "evalue": "",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mKeyboardInterrupt\u001b[0m                         Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-152-ffac2da82a61>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mprocess_pages\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpages\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;32m<ipython-input-151-6b3d776db707>\u001b[0m in \u001b[0;36mprocess_pages\u001b[0;34m(pages)\u001b[0m\n\u001b[1;32m      9\u001b[0m         \u001b[0m跳转_a\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mclick\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     10\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 11\u001b[0;31m         \u001b[0mtime\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msleep\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m3\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mrandom\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     12\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     13\u001b[0m         \u001b[0melement\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdriver\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfind_element_by_xpath\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'//div[@class=\"inner_link_article_list\"]'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mKeyboardInterrupt\u001b[0m: "
     ]
    }
   ],
   "source": [
    "process_pages(pages)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = pd.DataFrame([html_raw]).T\n",
    "df.columns = [\"html_snippets\"]\n",
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Stored 'html_raw' (dict)\n"
     ]
    }
   ],
   "source": [
    "%store html_raw\n",
    "import pickle \n",
    "filehandler = open(\"html_raw\", 'wb') \n",
    "pickle.dump(html_raw, filehandler)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "60\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>html_snippets</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>&lt;div&gt;&lt;label class=\"inner_link_article_item\"&gt;&lt;s...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                        html_snippets\n",
       "12  <div><label class=\"inner_link_article_item\"><s..."
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_out = df[~df.duplicated()]\n",
    "print (len(df_out))\n",
    "df[df.duplicated()]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[12]\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "[12]"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "try_again = list(df[df.duplicated()].index)\n",
    "print(try_again)\n",
    "try_again = try_again + list (set(pages).difference(set(df.index.values)))\n",
    "try_again"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 暂存档"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 263,
   "metadata": {},
   "outputs": [],
   "source": [
    "filename = fn [\"output\"] [\"公众号_htm_snippets\"] \n",
    "df_out.to_csv(filename.format(公众号=公众号), sep=\"\\t\", encoding=\"utf8\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 154,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "18,15,15,12,16,18,20,19,20,17,16,15,19,16,14,11,11,6,7,8,8,6,7,6,7,6,8,6,6,5,7,6,7,8,7,6,10,7,9,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,"
     ]
    }
   ],
   "source": [
    "def parse_html_snippets(_snippet_):\n",
    "    root = fromstring(_snippet_) \n",
    "    title = [x.text for x in root.xpath('//div[@class=\"inner_link_article_title\"]')]\n",
    "    create_time = [x.text for x in root.xpath('//div[@class=\"inner_link_article_date\"]')]\n",
    "    link = [x for x in root.xpath('//a/@href')]\n",
    "    _df_ = pd.DataFrame({\"title\":title, \"create_time\": create_time, \"link\":link})\n",
    "    return(_df_)\n",
    "    \n",
    "l_df = []\n",
    "for p in pages:\n",
    "    _df_ = parse_html_snippets(df.loc[p,\"html_snippets\"])\n",
    "    print (len(_df_), end=\",\")\n",
    "    l_df.append(_df_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 155,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>title</th>\n",
       "      <th>create_time</th>\n",
       "      <th>link</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>关于数据分析师的几点思考</td>\n",
       "      <td>2020-05-13</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>5个常用的大数据可视化分析工具</td>\n",
       "      <td>2020-05-13</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>微软官方再次上线了Python教程，这次比较高级</td>\n",
       "      <td>2020-05-13</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>搜索引擎背后的经典数据结构和算法</td>\n",
       "      <td>2020-05-13</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>首发，全网独一份的数据分析资源，过会就删！！</td>\n",
       "      <td>2020-05-12</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>SQL 查询优化之 WHERE 和 LIMIT 使用索引的奥秘</td>\n",
       "      <td>2020-05-12</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>「数据分析 」 B站市值破百亿，你真的不考虑当个up主吗？</td>\n",
       "      <td>2020-05-12</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>「经验总结」在滴滴和头条干了 2 年</td>\n",
       "      <td>2020-05-12</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>推荐一位大数据分析工程师朋友</td>\n",
       "      <td>2020-05-11</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>最全Python自动化办公总结</td>\n",
       "      <td>2020-05-11</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>Python3 网络爬虫之视频下载，那些事儿！</td>\n",
       "      <td>2020-05-11</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                              title create_time  \\\n",
       "0                      关于数据分析师的几点思考  2020-05-13   \n",
       "1                   5个常用的大数据可视化分析工具  2020-05-13   \n",
       "2          微软官方再次上线了Python教程，这次比较高级  2020-05-13   \n",
       "3                  搜索引擎背后的经典数据结构和算法  2020-05-13   \n",
       "4            首发，全网独一份的数据分析资源，过会就删！！  2020-05-12   \n",
       "5   SQL 查询优化之 WHERE 和 LIMIT 使用索引的奥秘  2020-05-12   \n",
       "6     「数据分析 」 B站市值破百亿，你真的不考虑当个up主吗？  2020-05-12   \n",
       "7                「经验总结」在滴滴和头条干了 2 年  2020-05-12   \n",
       "8                    推荐一位大数据分析工程师朋友  2020-05-11   \n",
       "9                   最全Python自动化办公总结  2020-05-11   \n",
       "10          Python3 网络爬虫之视频下载，那些事儿！  2020-05-11   \n",
       "\n",
       "                                                 link  \n",
       "0   http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "1   http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "2   http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "3   http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "4   http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "5   http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "6   http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "7   http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "8   http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "9   http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "10  http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  "
      ]
     },
     "execution_count": 155,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_url_out = pd.concat(l_df).reset_index(drop=True)\n",
    "df_url_out.loc[0:10]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 156,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>title</th>\n",
       "      <th>create_time</th>\n",
       "      <th>link</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>527</th>\n",
       "      <td>Python表情包解释为什么吃多了会拉shi！</td>\n",
       "      <td>2019-01-30</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>528</th>\n",
       "      <td>都说了解PCA，那你知道ICA吗？</td>\n",
       "      <td>2019-01-27</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>529</th>\n",
       "      <td>线性回归只能用sklearn实现吗？</td>\n",
       "      <td>2019-01-25</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>530</th>\n",
       "      <td>你会用Python做数据预处理吗？</td>\n",
       "      <td>2019-01-24</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>531</th>\n",
       "      <td>你愿意花十分钟系统了解数据分析方法吗？</td>\n",
       "      <td>2019-01-23</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                       title create_time  \\\n",
       "527  Python表情包解释为什么吃多了会拉shi！  2019-01-30   \n",
       "528        都说了解PCA，那你知道ICA吗？  2019-01-27   \n",
       "529       线性回归只能用sklearn实现吗？  2019-01-25   \n",
       "530        你会用Python做数据预处理吗？  2019-01-24   \n",
       "531      你愿意花十分钟系统了解数据分析方法吗？  2019-01-23   \n",
       "\n",
       "                                                  link  \n",
       "527  http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "528  http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "529  http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "530  http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "531  http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  "
      ]
     },
     "execution_count": 156,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_url_out.tail(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 157,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>title</th>\n",
       "      <th>create_time</th>\n",
       "      <th>link</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>value</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>微软官方再次上线了Python教程，这次比较高级</td>\n",
       "      <td>2020-05-13</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>SQL 查询优化之 WHERE 和 LIMIT 使用索引的奥秘</td>\n",
       "      <td>2020-05-12</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>「经验总结」在滴滴和头条干了 2 年</td>\n",
       "      <td>2020-05-12</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>最全Python自动化办公总结</td>\n",
       "      <td>2020-05-11</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>Python3 网络爬虫之视频下载，那些事儿！</td>\n",
       "      <td>2020-05-11</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>525</th>\n",
       "      <td>Python模拟社会财富分配。</td>\n",
       "      <td>2019-02-01</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>526</th>\n",
       "      <td>面试必备之Python深、浅拷贝。</td>\n",
       "      <td>2019-01-31</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>527</th>\n",
       "      <td>Python表情包解释为什么吃多了会拉shi！</td>\n",
       "      <td>2019-01-30</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>528</th>\n",
       "      <td>都说了解PCA，那你知道ICA吗？</td>\n",
       "      <td>2019-01-27</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>529</th>\n",
       "      <td>线性回归只能用sklearn实现吗？</td>\n",
       "      <td>2019-01-25</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>333 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                                 title create_time  \\\n",
       "value                                                \n",
       "2             微软官方再次上线了Python教程，这次比较高级  2020-05-13   \n",
       "5      SQL 查询优化之 WHERE 和 LIMIT 使用索引的奥秘  2020-05-12   \n",
       "7                   「经验总结」在滴滴和头条干了 2 年  2020-05-12   \n",
       "9                      最全Python自动化办公总结  2020-05-11   \n",
       "10             Python3 网络爬虫之视频下载，那些事儿！  2020-05-11   \n",
       "...                                ...         ...   \n",
       "525                    Python模拟社会财富分配。  2019-02-01   \n",
       "526                  面试必备之Python深、浅拷贝。  2019-01-31   \n",
       "527            Python表情包解释为什么吃多了会拉shi！  2019-01-30   \n",
       "528                  都说了解PCA，那你知道ICA吗？  2019-01-27   \n",
       "529                 线性回归只能用sklearn实现吗？  2019-01-25   \n",
       "\n",
       "                                                    link  \n",
       "value                                                     \n",
       "2      http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "5      http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "7      http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "9      http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "10     http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "...                                                  ...  \n",
       "525    http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "526    http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "527    http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "528    http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "529    http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "\n",
       "[333 rows x 3 columns]"
      ]
     },
     "execution_count": 157,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# tagging 标记\n",
    "tagging_list = [\"\",\"马化腾\", \"腾讯\", \"微众银行\",\"腾讯复星\",\"腾讯风控\",\"腾讯支付\",\"WeChat\",\"We Remit\",\\\n",
    "                \"公益日\",\"红包\",\\\n",
    "                \"腾讯财付通\",\"鹅厂\",\"QQ钱包\",\"QQ红包\",\"QQ\",\\\n",
    "                \"只有一\",\"大咖\",\"听说\",\"图片\",\"照片\",\"小编\",\\\n",
    "                \"洗钱\", \"黑产\",\"被骗\",\"腾讯安全课\",\"诈骗\", \"炒股\",\"神秘兼职\",\"神秘组织\",\\\n",
    "                \"财付通\", \"品牌\",\\\n",
    "                \"收款\",\\\n",
    "                \"报告\",\\\n",
    "                \"银行卡\",\"理财\",\"选股\",\"发票\",\"基金\",\\\n",
    "                \"区块链\",\"金融云\",\"O2O\",\"农产品\",\"家乡\",\\\n",
    "                \"数据\", \"数据赋能\", \"智能\", \"数字孪生\", \"智慧大脑\",\\\n",
    "                \"出行\",\"乘车\",\"公交\",\"乘车码\", \"智慧地铁\",\\\n",
    "                \"高峰论坛\", \"智库\",\\\n",
    "                \"央行\",\"新规\", \\\n",
    "                \"微信\", \"微信支付\", \"跨境支付\", \"移动支付\",\"非银行支付\",\"电子支付\",\\\n",
    "                \"互联网金融\", \"金融科技\",\"互联网＋\",\"互联网+金融\",\"普惠金融\",\"虚拟银行\",\\\n",
    "                \"开放\",\"生态\",\"复杂\",\"互联网思维\",\"全球合作伙伴\",\\\n",
    "                \"联合国\", \"城市\", \"粤港澳大湾区\", \"平台\", \"可持续发展\", \"未来\", \"绿色\",\\\n",
    "                \"医护\",\"防护服\",\"小时\",\"武汉\",\"危机\",\"新冠肺炎\", \"疫\", \"疫情\", \"复工\",\"停课\",\"宅经济\",\\\n",
    "                \"基建\",\"新基建\"] #overwritable\n",
    "\n",
    "v_v_list = []\n",
    "\n",
    "for tag in tagging_list:\n",
    "    index_list = df_url_out [ df_url_out.title.str.contains(tag) ].index.tolist()\n",
    "    v_v_pairs = pd.DataFrame({tag:index_list}).melt().set_index(\"value\")\n",
    "    v_v_list.append(v_v_pairs)\n",
    "\n",
    "df_cat = v_v_list[0]\n",
    "for d in v_v_list:\n",
    "    df_cat.update(d)\n",
    "    \n",
    "# 输出未分类内容\n",
    "df_url_out.loc [ df_cat.query('variable==\"\"').index ]"
   ]
  },
  {
   "cell_type": "raw",
   "metadata": {},
   "source": [
    "df_url_out.loc[53].link"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 158,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>title</th>\n",
       "      <th>create_time</th>\n",
       "      <th>link</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>186</th>\n",
       "      <td>数据分析师 or 算法工程师</td>\n",
       "      <td>2020-03-18</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>187</th>\n",
       "      <td>中国博士开发可交互全球疫情地图，GitHub 已有 4500 star！</td>\n",
       "      <td>2020-03-18</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>188</th>\n",
       "      <td>这5点让你拥有数据分析思维</td>\n",
       "      <td>2020-03-18</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>189</th>\n",
       "      <td>研究生导师讨厌什么样的学生 ？</td>\n",
       "      <td>2020-03-18</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>190</th>\n",
       "      <td>HSQL常问的这几点</td>\n",
       "      <td>2020-03-17</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>191</th>\n",
       "      <td>百度工程师非法控制公司服务器“挖矿”：4个月获利10万，被判坐牢3年</td>\n",
       "      <td>2020-03-17</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>192</th>\n",
       "      <td>实至名归！NumPy 官方早有中文教程，还有防脱发指南</td>\n",
       "      <td>2020-03-17</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>193</th>\n",
       "      <td>一个案例教会你：如何对产品做数据分析？</td>\n",
       "      <td>2020-03-17</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>194</th>\n",
       "      <td>数据分析师必知的那些Hive-SQL</td>\n",
       "      <td>2020-03-16</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>195</th>\n",
       "      <td>实战 | Kaggle竞赛：预测二手车每年平均价值损失</td>\n",
       "      <td>2020-03-16</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>196</th>\n",
       "      <td>女性消费特征分析报告</td>\n",
       "      <td>2020-03-16</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>197</th>\n",
       "      <td>对不起，让大家失望了</td>\n",
       "      <td>2020-03-15</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>198</th>\n",
       "      <td>数据和业务的关系是什么？</td>\n",
       "      <td>2020-03-14</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>199</th>\n",
       "      <td>李宏毅机器学习2020版正式开放上线 | 附B站观看链接</td>\n",
       "      <td>2020-03-14</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>200</th>\n",
       "      <td>5个热搜，看2019全球AI这一年</td>\n",
       "      <td>2020-03-14</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                    title create_time  \\\n",
       "186                        数据分析师 or 算法工程师  2020-03-18   \n",
       "187  中国博士开发可交互全球疫情地图，GitHub 已有 4500 star！  2020-03-18   \n",
       "188                         这5点让你拥有数据分析思维  2020-03-18   \n",
       "189                       研究生导师讨厌什么样的学生 ？  2020-03-18   \n",
       "190                            HSQL常问的这几点  2020-03-17   \n",
       "191    百度工程师非法控制公司服务器“挖矿”：4个月获利10万，被判坐牢3年  2020-03-17   \n",
       "192           实至名归！NumPy 官方早有中文教程，还有防脱发指南  2020-03-17   \n",
       "193                   一个案例教会你：如何对产品做数据分析？  2020-03-17   \n",
       "194                    数据分析师必知的那些Hive-SQL  2020-03-16   \n",
       "195           实战 | Kaggle竞赛：预测二手车每年平均价值损失  2020-03-16   \n",
       "196                            女性消费特征分析报告  2020-03-16   \n",
       "197                            对不起，让大家失望了  2020-03-15   \n",
       "198                          数据和业务的关系是什么？  2020-03-14   \n",
       "199          李宏毅机器学习2020版正式开放上线 | 附B站观看链接  2020-03-14   \n",
       "200                     5个热搜，看2019全球AI这一年  2020-03-14   \n",
       "\n",
       "                                                  link  \n",
       "186  http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "187  http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "188  http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "189  http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "190  http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "191  http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "192  http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "193  http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "194  http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "195  http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "196  http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "197  http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "198  http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "199  http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "200  http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  "
      ]
     },
     "execution_count": 158,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_url_out[df_url_out.duplicated()]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 159,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>title</th>\n",
       "      <th>create_time</th>\n",
       "      <th>link</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>关于数据分析师的几点思考</td>\n",
       "      <td>2020-05-13</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>5个常用的大数据可视化分析工具</td>\n",
       "      <td>2020-05-13</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>微软官方再次上线了Python教程，这次比较高级</td>\n",
       "      <td>2020-05-13</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>搜索引擎背后的经典数据结构和算法</td>\n",
       "      <td>2020-05-13</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>首发，全网独一份的数据分析资源，过会就删！！</td>\n",
       "      <td>2020-05-12</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>527</th>\n",
       "      <td>Python表情包解释为什么吃多了会拉shi！</td>\n",
       "      <td>2019-01-30</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>528</th>\n",
       "      <td>都说了解PCA，那你知道ICA吗？</td>\n",
       "      <td>2019-01-27</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>529</th>\n",
       "      <td>线性回归只能用sklearn实现吗？</td>\n",
       "      <td>2019-01-25</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>530</th>\n",
       "      <td>你会用Python做数据预处理吗？</td>\n",
       "      <td>2019-01-24</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>531</th>\n",
       "      <td>你愿意花十分钟系统了解数据分析方法吗？</td>\n",
       "      <td>2019-01-23</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>517 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                        title create_time  \\\n",
       "0                关于数据分析师的几点思考  2020-05-13   \n",
       "1             5个常用的大数据可视化分析工具  2020-05-13   \n",
       "2    微软官方再次上线了Python教程，这次比较高级  2020-05-13   \n",
       "3            搜索引擎背后的经典数据结构和算法  2020-05-13   \n",
       "4      首发，全网独一份的数据分析资源，过会就删！！  2020-05-12   \n",
       "..                        ...         ...   \n",
       "527   Python表情包解释为什么吃多了会拉shi！  2019-01-30   \n",
       "528         都说了解PCA，那你知道ICA吗？  2019-01-27   \n",
       "529        线性回归只能用sklearn实现吗？  2019-01-25   \n",
       "530         你会用Python做数据预处理吗？  2019-01-24   \n",
       "531       你愿意花十分钟系统了解数据分析方法吗？  2019-01-23   \n",
       "\n",
       "                                                  link  \n",
       "0    http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "1    http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "2    http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "3    http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "4    http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "..                                                 ...  \n",
       "527  http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "528  http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "529  http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "530  http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "531  http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...  \n",
       "\n",
       "[517 rows x 3 columns]"
      ]
     },
     "execution_count": 159,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_url_out[~df_url_out.duplicated()]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 160,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>title</th>\n",
       "      <th>create_time</th>\n",
       "      <th>link</th>\n",
       "      <th>variable</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>关于数据分析师的几点思考</td>\n",
       "      <td>2020-05-13</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "      <td>数据</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>5个常用的大数据可视化分析工具</td>\n",
       "      <td>2020-05-13</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "      <td>数据</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>微软官方再次上线了Python教程，这次比较高级</td>\n",
       "      <td>2020-05-13</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "      <td>无法分类</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>搜索引擎背后的经典数据结构和算法</td>\n",
       "      <td>2020-05-13</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "      <td>数据</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>首发，全网独一份的数据分析资源，过会就删！！</td>\n",
       "      <td>2020-05-12</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "      <td>数据</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>527</th>\n",
       "      <td>Python表情包解释为什么吃多了会拉shi！</td>\n",
       "      <td>2019-01-30</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "      <td>无法分类</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>528</th>\n",
       "      <td>都说了解PCA，那你知道ICA吗？</td>\n",
       "      <td>2019-01-27</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "      <td>无法分类</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>529</th>\n",
       "      <td>线性回归只能用sklearn实现吗？</td>\n",
       "      <td>2019-01-25</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "      <td>无法分类</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>530</th>\n",
       "      <td>你会用Python做数据预处理吗？</td>\n",
       "      <td>2019-01-24</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "      <td>数据</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>531</th>\n",
       "      <td>你愿意花十分钟系统了解数据分析方法吗？</td>\n",
       "      <td>2019-01-23</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "      <td>数据</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>532 rows × 4 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                        title create_time  \\\n",
       "0                关于数据分析师的几点思考  2020-05-13   \n",
       "1             5个常用的大数据可视化分析工具  2020-05-13   \n",
       "2    微软官方再次上线了Python教程，这次比较高级  2020-05-13   \n",
       "3            搜索引擎背后的经典数据结构和算法  2020-05-13   \n",
       "4      首发，全网独一份的数据分析资源，过会就删！！  2020-05-12   \n",
       "..                        ...         ...   \n",
       "527   Python表情包解释为什么吃多了会拉shi！  2019-01-30   \n",
       "528         都说了解PCA，那你知道ICA吗？  2019-01-27   \n",
       "529        线性回归只能用sklearn实现吗？  2019-01-25   \n",
       "530         你会用Python做数据预处理吗？  2019-01-24   \n",
       "531       你愿意花十分钟系统了解数据分析方法吗？  2019-01-23   \n",
       "\n",
       "                                                  link variable  \n",
       "0    http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...       数据  \n",
       "1    http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...       数据  \n",
       "2    http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...     无法分类  \n",
       "3    http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...       数据  \n",
       "4    http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...       数据  \n",
       "..                                                 ...      ...  \n",
       "527  http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...     无法分类  \n",
       "528  http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...     无法分类  \n",
       "529  http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...     无法分类  \n",
       "530  http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...       数据  \n",
       "531  http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...       数据  \n",
       "\n",
       "[532 rows x 4 columns]"
      ]
     },
     "execution_count": 160,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_o = df_url_out.join(df_cat).replace(\"\", np.nan).fillna(\"无法分类\")\n",
    "df_o"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 161,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>title</th>\n",
       "      <th>create_time</th>\n",
       "      <th>link</th>\n",
       "      <th>variable</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>121</th>\n",
       "      <td>腾讯是如何支撑 6W 员工远程工作的？</td>\n",
       "      <td>2020-04-06</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "      <td>腾讯</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>142</th>\n",
       "      <td>我拿到了腾讯最爱考的数据分析面试题</td>\n",
       "      <td>2020-03-31</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "      <td>数据</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>296</th>\n",
       "      <td>腾讯捐3亿、京东顺丰物流优先派送，互联网公司驰援武汉！</td>\n",
       "      <td>2020-01-26</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "      <td>武汉</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>389</th>\n",
       "      <td>腾讯背后的神秘金主，1000亿美元资本大收割</td>\n",
       "      <td>2019-09-02</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "      <td>腾讯</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>508</th>\n",
       "      <td>腾讯技术大佬教你如何写简历。</td>\n",
       "      <td>2019-02-28</td>\n",
       "      <td>http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...</td>\n",
       "      <td>腾讯</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                           title create_time  \\\n",
       "121          腾讯是如何支撑 6W 员工远程工作的？  2020-04-06   \n",
       "142            我拿到了腾讯最爱考的数据分析面试题  2020-03-31   \n",
       "296  腾讯捐3亿、京东顺丰物流优先派送，互联网公司驰援武汉！  2020-01-26   \n",
       "389       腾讯背后的神秘金主，1000亿美元资本大收割  2019-09-02   \n",
       "508               腾讯技术大佬教你如何写简历。  2019-02-28   \n",
       "\n",
       "                                                  link variable  \n",
       "121  http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...       腾讯  \n",
       "142  http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...       数据  \n",
       "296  http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...       武汉  \n",
       "389  http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...       腾讯  \n",
       "508  http://mp.weixin.qq.com/s?__biz=MzU5NDgyMjc0OQ...       腾讯  "
      ]
     },
     "execution_count": 161,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_o[df_o.title.str.contains(\"腾讯\")]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 162,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>title</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>variable</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>无法分类</th>\n",
       "      <td>333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>数据</th>\n",
       "      <td>154</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>疫情</th>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>报告</th>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>微信</th>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>开放</th>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>腾讯</th>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>武汉</th>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>疫</th>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>未来</th>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>红包</th>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>危机</th>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>智能</th>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>城市</th>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>平台</th>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>小时</th>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>复杂</th>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>鹅厂</th>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          title\n",
       "variable       \n",
       "无法分类        333\n",
       "数据          154\n",
       "疫情           11\n",
       "报告            7\n",
       "微信            6\n",
       "开放            4\n",
       "腾讯            3\n",
       "武汉            3\n",
       "疫             2\n",
       "未来            1\n",
       "红包            1\n",
       "危机            1\n",
       "智能            1\n",
       "城市            1\n",
       "平台            1\n",
       "小时            1\n",
       "复杂            1\n",
       "鹅厂            1"
      ]
     },
     "execution_count": 162,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_stats = df_o.groupby(by=\"variable\").agg({\"title\":\"count\"}).sort_values(by=\"title\", ascending=False)\n",
    "df_stats"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 输出"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 163,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_account.columns.name = \"rel_accounts\"\n",
    "df_o.columns.name = \"url_cat\"\n",
    "df_stats.columns.name = \"stats\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 164,
   "metadata": {},
   "outputs": [],
   "source": [
    "_df_.columns.name"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 168,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Get the xlsxwriter workbook and worksheet objects.  \n",
    "with pd.ExcelWriter(fn[\"output\"][\"公众号_xlsx\"].format(公众号=公众号)) as writer:\n",
    "    workbook  = writer.book\n",
    "\n",
    "    for _df_ in [df_account, df_o, df_stats]:\n",
    "        _df_.to_excel(writer, sheet_name = _df_.columns.name)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_o"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 207,
   "metadata": {
    "scrolled": false
   },
   "outputs": [],
   "source": [
    "# 只要标题\n",
    "标题字典=df_o['title'].to_dict()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 253,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['关于数据分析师的几点思考',\n",
       " '5个常用的大数据可视化分析工具',\n",
       " '微软官方再次上线了Python教程这次比较高级',\n",
       " '搜索引擎背后的经典数据结构和算法',\n",
       " '首发全网独一份的数据分析资源过会就删',\n",
       " 'SQL查询优化之WHERE和LIMIT使用索引的奥秘',\n",
       " '「数据分析」B站市值破百亿你真的不考虑当个up主吗',\n",
       " '「经验总结」在滴滴和头条干了2年',\n",
       " '推荐一位大数据分析工程师朋友',\n",
       " '最全Python自动化办公总结',\n",
       " 'Python3网络爬虫之视频下载那些事儿',\n",
       " '聊聊最近',\n",
       " 'SQL进阶技巧',\n",
       " '你这数据接口设计的真”辣鸡“简直没法看',\n",
       " '4月份最热门的11个Python开源项目——面试、爬虫、机器学习应有尽有',\n",
       " '常见数据分析规范',\n",
       " '统计学知识大梳理（终极篇）',\n",
       " '网传互联网公司加班表哈哈哈这也太真实了吧',\n",
       " '数据分析师or算法工程师',\n",
       " '中国博士开发可交互全球疫情地图GitHub已有4500star',\n",
       " '这5点让你拥有数据分析思维',\n",
       " '研究生导师讨厌什么样的学生',\n",
       " 'HSQL常问的这几点',\n",
       " '百度工程师非法控制公司服务器“挖矿”：4个月获利10万被判坐牢3年',\n",
       " '实至名归NumPy官方早有中文教程还有防脱发指南',\n",
       " '一个案例教会你：如何对产品做数据分析',\n",
       " '数据分析师必知的那些Hive-SQL',\n",
       " '实战Kaggle竞赛：预测二手车每年平均价值损失',\n",
       " '女性消费特征分析报告',\n",
       " '对不起让大家失望了',\n",
       " '数据和业务的关系是什么',\n",
       " '李宏毅机器学习2020版正式开放上线附B站观看链接',\n",
       " '5个热搜看2019全球AI这一年',\n",
       " '最新微信零钱免费提现方法（2020版）',\n",
       " 'Python数据分析师不可错过的优质项目',\n",
       " '数据分析的5个坑',\n",
       " '5月1日新规别再随便删微信聊天记录',\n",
       " 'Python和Excel终于可以互通了',\n",
       " '披着数据分析师的外衣干着鱼龙混杂的活',\n",
       " '用SQL而不是Python处理文本数据',\n",
       " '微软官方上线了Python教程7个章节就把Python说通了',\n",
       " '数据可视化的10个关键术语',\n",
       " '劝你们不要过度迷信数据分析',\n",
       " '一句SQL我有6种写法',\n",
       " '看下这7家互联网公司的数据科学技术栈',\n",
       " '阿里P8质疑蒋凡妻子微博“被控评”遭辞退P10领导回应',\n",
       " '一定要培养数据分析思维',\n",
       " '10000字Pandas基础+进阶笔记',\n",
       " '转行数据数据师不用怕没项目',\n",
       " '绘制炫酷的地图不只是pyecharts',\n",
       " '阿里处分蒋凡取消合伙人背后另有黑幕',\n",
       " '14个数据分析和机器学习项目附数据集',\n",
       " '如何分析一家上市公司（12000+字）',\n",
       " '5分钟完全了解SQLAlchemy',\n",
       " '讲一下数据分析思维',\n",
       " '可以不用到处爬数据了',\n",
       " 'Python3网络爬虫（一）：初识网络爬虫之夜探老王家',\n",
       " 'Python3网络爬虫（二）：下载小说的正确姿势',\n",
       " '关于数据可视化图表的制作你需要关注的30个小技巧',\n",
       " '上交大保卫处招聘要求“硕士及以上学历”引热议学校正式回应了',\n",
       " '推荐5款免费网盘空间大不限速',\n",
       " '不懂数据分析框架你拿头去分析',\n",
       " '用Python实现粒子群算法',\n",
       " '互联网大厂的薪资和职级一览',\n",
       " '用Python分析微信群聊记录是怎样一种体验',\n",
       " '4个数据分析思路分享：关键指标与产品如何把握',\n",
       " '数据岗位以后再也没有数据分析师',\n",
       " '“罗永浩抖音首秀”销售数据的可视化大屏是怎么做出来的',\n",
       " '工作流一目了然看小姐姐用动图展示10大Git命令',\n",
       " '推荐10款效率翻倍的撸码神器',\n",
       " '招数据分析师快手商业化团队',\n",
       " '玩转数据处理120题｜Pandas&R',\n",
       " '把你的Python代码提速7倍',\n",
       " 'Pandownload下线了我花了30分钟自己搭建了一个网盘',\n",
       " 'Python3.9新特性：任意表达式可作为装饰器',\n",
       " 'MySQL查询连续打卡信息',\n",
       " '看用Python一键导出微信阅读记录',\n",
       " 'Pandas进阶修炼120题',\n",
       " '推荐一款功能强大的词云工具支持更改形状和背景色、自定义风格、颜色流动…',\n",
       " '这些用Python写的牛逼程序/脚本你玩过吗',\n",
       " 'B站上爆红的数学视频居然都是用这个开源项目做的',\n",
       " '数据分析干货留存率模型应该怎么搭建',\n",
       " '知网论文免费下载请速度存好',\n",
       " 'Google等厂宣布取消部分offer',\n",
       " '做好异常数据分析看这篇就够了',\n",
       " 'GBDT、XGBoost、LightGBM的区别和联系',\n",
       " '三万字、91道MySQL面试题（收藏版）',\n",
       " '阿里数据分析师非技术向面经',\n",
       " '北大数学确实强阿里数学竞赛决赛入围人数加起来超过清华和南大之和；还有13位中学选手最小14岁',\n",
       " '清洗数据我习惯用这7步',\n",
       " '5个趣味Python练手项目',\n",
       " '数据采集技术简介',\n",
       " '一份可以令Python变快的工具清单',\n",
       " '想爬哪里点哪里这款神奇的插件你值得拥有',\n",
       " '他成绩一般大二却破解世界难题三院士致信中央22岁破格成教授',\n",
       " '三分钟带你看遍世界大学排行',\n",
       " 'Tableau实战：银行信贷客户可视化分析',\n",
       " '清华学生总结的算法学习方法',\n",
       " '如何把pyecharts的炫酷延续到PPT里',\n",
       " 'Sql如何统计连续打卡天数',\n",
       " '这5种动态炫酷图也是用Python画的',\n",
       " '卡内基梅隆大学免费开放编程课程啦',\n",
       " '一个靠爬虫赚钱的思路',\n",
       " '划重点你还在困惑MySQL中的\"锁\"吗',\n",
       " 'PyCharm2020.1稳定版发布',\n",
       " '深扒瑞幸董事长陆正耀走过的“野路子”',\n",
       " '不懂代码也能爬取数据',\n",
       " 'Feed流产品数据分析、评估及优化',\n",
       " 'Hive使用必知必会系列',\n",
       " '所有人问俞军',\n",
       " '生存分析与用户行为如何联系起来',\n",
       " 'HiveSQL50道练习题',\n",
       " '不就是用Python做个动态图吗看招',\n",
       " '专访商汤科技联合创始人林达华',\n",
       " '可怕3.83亿开房记录遭泄露这家酒店竟然又被爆泄露520万用户数据了',\n",
       " '实用5个案例让Python输出漂亮的表格',\n",
       " 'hive中窗口函数实现原理复盘',\n",
       " '程序员常用资源工具集合（建议收藏）',\n",
       " '最近在用的一款可视化工具',\n",
       " '用Python画梦想矩阵',\n",
       " '为了抓取弹幕你需要知道的一些二进制数据常识',\n",
       " '腾讯是如何支撑6W员工远程工作的',\n",
       " '昨天网站都变成灰色了这其中是怎么实现的',\n",
       " '京都大学天才数学家证明abc猜想全球只有十几个数学家读懂',\n",
       " 'LeetCode中Python一行代码能干啥',\n",
       " '「2020」PDD数据分析笔试题附解答',\n",
       " 'BD云资源搜索神器自带6个引擎还能查询提取码',\n",
       " '从此再无「Office」',\n",
       " '数据分析师生存手记',\n",
       " '让人想骂街的Python炫技操作：条件语句的七种写法',\n",
       " '常用统计检验的Python实现',\n",
       " 'Excel的分列功能很强大SQL能实现吗',\n",
       " '浑水做空瑞幸咖啡报告中文翻译版',\n",
       " 'Python正则表达式这一篇就够了',\n",
       " '工作多年为什么还要转行',\n",
       " '你想要的Python面试都在这里了【315+道题】',\n",
       " '整理一套互联网行业的数据指标送给你',\n",
       " '数据模型告诉你现在可以放松了吗',\n",
       " '如何用数据解决实际问题',\n",
       " '不写XPath照样轻轻松松抓取大部分博客',\n",
       " '全球疫情引起P站访问量激增',\n",
       " '数据可视化的基本流程总结',\n",
       " '我拿到了腾讯最爱考的数据分析面试题',\n",
       " '用Pyecharts对疫情数据进行可视化分析',\n",
       " '微信「看一看」小秘密',\n",
       " '英伟达小姐姐的Python隐藏技巧合集推特2400赞代码可以直接跑',\n",
       " 'Python操作Excel哪家强',\n",
       " 'GitHub搜索骚技巧太好用了',\n",
       " '春晚冠名那些事儿',\n",
       " '字节跳动的二号人物',\n",
       " '用Python绘制诱人的桑基图一眼看透熬夜和狗粮的秘密...',\n",
       " '文科清华第一理科北大第一新版高考分数百强大学排名发布',\n",
       " '5个酷毙的Python神器工具',\n",
       " '小红书做直播的背后隐藏了什么秘密',\n",
       " '有关用户留存模型的一种设计方法',\n",
       " '来推荐一位BAT任职的数据大神',\n",
       " '数据团队思考：数据人的通用技能要求',\n",
       " '小尝试：基于指标体系的数据仓库搭建和数据可视化',\n",
       " '一款SQL自动检查神器',\n",
       " '实战Kaggle竞赛：华盛顿特区首都自行车租赁预测',\n",
       " '等一等你的多线程可别再乱join了',\n",
       " '姚班天才漆子超、IOI金牌得主陈启峰等联手进军AR领域：全员顶尖科技公司技术背景打造“5G+AI+AR”先锋',\n",
       " '商业分析3步走实例',\n",
       " '12种高效Numpy和Pandas函数为你加速数据分析',\n",
       " '用python分析了5000部票房发现赚钱的电影都有这些特征~',\n",
       " '最新这些高校已确定暑假时间最早7月10日……',\n",
       " '阿里达摩院数学竞赛新一轮考题曝光4道题限时48小时',\n",
       " '分析B站100万+视频发现竟然有这么多干货资源',\n",
       " '10个必会的PyCharm技巧',\n",
       " '教你看数据后台中的常用指标这些要重点关注',\n",
       " '数据分析师刚入职第一月需要注意什么',\n",
       " '瀑布图有什么用怎么画',\n",
       " '又一所重量级大学要来了投资100亿今年选校长',\n",
       " '美股跌幅最大公司排行榜巴菲特哭晕在厕所',\n",
       " 'BI分析师痛在哪里',\n",
       " 'BI分析师为何痛',\n",
       " 'BI分析师如何破破局',\n",
       " 'Pandas4个小trick都很实用',\n",
       " '厚颜无耻国内竟有人把JSON注册成自有商标',\n",
       " '95后互联网实习生的2019',\n",
       " 'SQL语句+语法I数据分析面试必备',\n",
       " '只需10行代码Python教你自制屏幕翻译工具高效办公',\n",
       " '17岁高中生独立开发全球最火疫情追踪网站他的偶像是乔布斯',\n",
       " '我私藏的算法刷题网站都在这里了',\n",
       " '让数据分析更简单的Panda技巧：万能转格式、轻松合并、数据压缩...',\n",
       " '全国医疗资源排名各省差距有多大',\n",
       " '数据分析师or算法工程师',\n",
       " '中国博士开发可交互全球疫情地图GitHub已有4500star',\n",
       " '这5点让你拥有数据分析思维',\n",
       " '研究生导师讨厌什么样的学生',\n",
       " 'HSQL常问的这几点',\n",
       " '百度工程师非法控制公司服务器“挖矿”：4个月获利10万被判坐牢3年',\n",
       " '实至名归NumPy官方早有中文教程还有防脱发指南',\n",
       " '一个案例教会你：如何对产品做数据分析',\n",
       " '数据分析师必知的那些Hive-SQL',\n",
       " '实战Kaggle竞赛：预测二手车每年平均价值损失',\n",
       " '女性消费特征分析报告',\n",
       " '对不起让大家失望了',\n",
       " '数据和业务的关系是什么',\n",
       " '李宏毅机器学习2020版正式开放上线附B站观看链接',\n",
       " '5个热搜看2019全球AI这一年',\n",
       " '清华特奖高天宇干货分享本科4篇顶会论文如何做到',\n",
       " '电商数据分析流程Excel实操',\n",
       " 'Python爬虫多种方式对比',\n",
       " '薪资没那么高延毕率超60%现代人读博都图什么',\n",
       " '生成词云的几种方式',\n",
       " '2020年抖音用户画像报告',\n",
       " 'MIT教授创业公司将Facebook告上法庭',\n",
       " '句句诛心的博士论文致谢及女朋友回应的话',\n",
       " '利用Python实现数据偏移',\n",
       " '学会这些Excel技巧',\n",
       " '日本神秘男子开发可自动去码AI能“伪造”性器震动业界',\n",
       " '从平安科技到商汤科技谈谈我的实习经历',\n",
       " '用Python可视化神器Plotly动态演示全球疫情变化趋势',\n",
       " '京东、淘宝、饿了么的提升用户留存率技巧推荐收藏',\n",
       " '如何评价2020考研计算机硕士诸多高校继续「爆炸」',\n",
       " '钉钉火到日本日本学生哭着打一星哈哈哈哈',\n",
       " '确诊病例直逼5000意大利人为什么还不把疫情当回事',\n",
       " '实战电信客户流失分析与预测',\n",
       " '背KPI想要实现有效增长先来搞懂这3个指标',\n",
       " '《本人娶刘亦菲的可行性报告》被省级期刊收录杂志社回应：早年管理不规范',\n",
       " '新手必看：数据分析10大方法',\n",
       " '这些SQL查询小技巧一般人我不告诉他',\n",
       " '这些画居然是用Excel画的我用的Excel可能是假的……',\n",
       " '就想写个爬虫我到底要学多少东西啊',\n",
       " '这份「数据科学」资源强烈推荐',\n",
       " '张一鸣：做CEO要避免理性的自负',\n",
       " '新用户分析的一些注意点',\n",
       " '2020年QS世界大学排名发布清华表现亮眼',\n",
       " '8行Python代码搭建一个本地站点可以为所欲为啊',\n",
       " '推荐13个Python新手练级项目',\n",
       " '不要被这3个数据“假象”迷惑了',\n",
       " '如何做出好看的可视化',\n",
       " '我在华为当“网红”',\n",
       " '经此一疫数说互联网公司格局发生的变化',\n",
       " 'Python常见的17个错误分析',\n",
       " '我在滴滴数据分析岗实习了8个月',\n",
       " '6个接私活的网站你有技术就有钱',\n",
       " '哇微软Excel竟然还能实现CV算法',\n",
       " '我用Python算出了同事的身份证号码',\n",
       " '别一直用Select*了',\n",
       " '130个相见恨晚的超实用网站一次性分享出来',\n",
       " '教育部最新通知：这类大学生可先返校',\n",
       " '数据分析常用的Excel函数合集（上）',\n",
       " '数据分析常用的Excel函数合集（下）',\n",
       " '太突然北大方正破产了负债3029亿元',\n",
       " 'Vlookup进阶带你又快又准的引用数据',\n",
       " 'Python3.9又更新了：dict内置新功能正式版十月见面',\n",
       " '百度内部培训PPT流出：数据分析的道与术',\n",
       " '如何看待清华大学将线性代数教材改为英文教材',\n",
       " '新手必看统计学知识大梳理',\n",
       " '年轻人住房消费报告：月入多少才能实现住房自由',\n",
       " '还真有人「删库跑路」反思数据安全',\n",
       " '2020无春招',\n",
       " '别再从0构建数据指标体系了',\n",
       " '墙裂推荐B站上的Python学习资源',\n",
       " '掌握SQL高级功能实战业务问题分析',\n",
       " '未来诺奖或出自他们16位华人学者获美国斯隆研究奖',\n",
       " '当当网这次可能要凉了',\n",
       " 'Github上的这两份学习资料据说30天就能学会一门编程语言',\n",
       " '用AI抗\"疫\"滴滴免费开放口罩佩戴识别技术',\n",
       " '重大突破西湖大学揭开新冠病毒侵染人体细胞谜团',\n",
       " '一次非常有意思的SQL优化经历',\n",
       " '爬取数据不是非要Python',\n",
       " '招聘数据分析方向',\n",
       " 'Pandas使用的25个技巧',\n",
       " '清华北大南大全面“线上开学”10大直播神器齐亮相',\n",
       " '纯文本秒变Markdown只需一行代码',\n",
       " '30种SQL语句优化',\n",
       " '又一个吊打百度网盘的开源神器',\n",
       " '招聘西湖大学深度学习实验室',\n",
       " '拆解数据分析常见的业务指标',\n",
       " '多所高校给学生发疫情补助金研究生本科均有最高2000元',\n",
       " '来了SQL在线模拟器',\n",
       " '一个校招面试官的1天',\n",
       " 'RFM模型深入解读',\n",
       " '写好SQL很有必要',\n",
       " '数据科学电子书25强大合集',\n",
       " '最近面了十多个数据分析师',\n",
       " '医学权威期刊《柳叶刀》最新文章：北上广深等城市疫情潜在传播爆发时间预测',\n",
       " '瑞德西韦今起免费供武汉重症患者试用吉利德CEO：治病第一不想卷入专利纠纷',\n",
       " 'DAU数据异常分析思路',\n",
       " '中国知网道歉了',\n",
       " '50题matplotlib从入门到精通',\n",
       " '数据告诉你网友们都怎么打发时间',\n",
       " '教育部官宣自主划线高校考研复试录取工作推迟举行',\n",
       " '明确数据分析目标的3个步骤',\n",
       " '最新疫情数据报告已到达你的邮箱',\n",
       " '我为什么要去北京电影学院进修',\n",
       " '清华大学网上课程面向全国免费开放无需登录、注册在家上清华',\n",
       " '浅度测评：requests、aiohttp、httpx我应该用哪一个',\n",
       " '4000万人看武汉直播造医院还给挖掘机挨个起名',\n",
       " 'The10AlgorithmsMachineLearningEngineersNeedtoKnow',\n",
       " '不写一条SQL照样分析数据库',\n",
       " '统计学常犯的18个错误请务必跳过这些坑',\n",
       " '画像分析',\n",
       " '腾讯捐3亿、京东顺丰物流优先派送互联网公司驰援武汉',\n",
       " 'Python处理3万多条数据只要3秒钟',\n",
       " '在线电子烟花',\n",
       " '春节档全部撤档',\n",
       " '安利一位Python终身学习者',\n",
       " '数据推测：哪些城市新型肺炎疫情更容易被低谷',\n",
       " '互联网人不相信眼泪',\n",
       " '14天锁定新型肺炎元凶背后是14年的技术竞赛',\n",
       " '帝都搬砖四年他决定回老家考公务员',\n",
       " 'Python2已终结入手Python3你需要这30个技巧',\n",
       " '数据分析里最基础的思维',\n",
       " 'N种方式教你用Python读写Excel等数据文件',\n",
       " '我在上海实习的日子',\n",
       " '微信没有张总',\n",
       " '私藏免费电子书下载网站',\n",
       " '哪些行业难逃35岁危机',\n",
       " 'Python开源项目的正确打开方式',\n",
       " '数据分析最全的基础知识都在这了',\n",
       " '50道练习带你玩转Pandas',\n",
       " '800名科学家联名主张废除p值斯坦福教授：没有p值期刊将充斥“无可辩驳的废话”',\n",
       " '张一山倒下了惊醒了一大批程序员',\n",
       " '如果你还在犹豫怎么学Python看看这位大牛的3个秘籍',\n",
       " '25个常用Matplotlib图的Python代码干货收藏',\n",
       " '2019年中国顶尖名校毕业生都去哪儿了',\n",
       " '数据分析方向选择上的一点点体会',\n",
       " '华为等公司年终奖发了多少',\n",
       " '我发现了养成中美网红的「爆品公式」',\n",
       " '竞赛冠军方案2019CCFBDCI乘用车销量预测',\n",
       " '这回B站跨年晚会\"吊打\"各卫视',\n",
       " '怎样写好一个Python函数',\n",
       " '「双非」研究生数据分析春招心路历程',\n",
       " '这10个Excel功能SQL也能实现啦',\n",
       " '再见我亲手创办的公司',\n",
       " '《给数据科学家的Python技能秘籍》87页PDF',\n",
       " 'Jupyter也能交互可视化',\n",
       " '清华退学天才VS阿里P10大牛',\n",
       " '这才是程序员加班的真正原因',\n",
       " '数据分析师正在被攻击',\n",
       " '风控数据分析师的一天',\n",
       " '10个常用的数据分析商业模型',\n",
       " '工作3年VS读研3年',\n",
       " '2020华为招聘的那位年薪百万的博士',\n",
       " '淘宝用户分析实操SQL版',\n",
       " 'Pandas：Value_counts的5种高效技巧',\n",
       " '数据分析的8个状态',\n",
       " '“穷人”才是电商的主战场',\n",
       " '真的值得考研吗',\n",
       " '李子柒在外国人眼中也备受争议',\n",
       " 'PythonI超实用的20段代码',\n",
       " '安利一位有趣的数据分析朋友',\n",
       " '讲真用起来很香',\n",
       " '超级菜鸟如何入门数据分析',\n",
       " '你是咸鱼程序猿吗不好意思我穿背心上班',\n",
       " '过去十年哪些数据库备受欢迎',\n",
       " '我的三年数据分析',\n",
       " '一份好的简历',\n",
       " '1维到6维数据可视化你敢信',\n",
       " '取消985/211大公司招聘就没有学历潜规则了',\n",
       " '你也想去阿里巴巴做数据分析师',\n",
       " '第一批90后30岁倒计时......',\n",
       " '介绍一位零基础转行数据分析的好友畅销书作家',\n",
       " '一份大学统计学教授推荐的统计学书单全部下载好了',\n",
       " '胡言乱语',\n",
       " '网易是世界最好的公司',\n",
       " '5G牛在哪看完这张图你就懂了',\n",
       " '5个高效简洁的Numpy函数',\n",
       " '爬取Google的心酸之路',\n",
       " 'Python绘图还在用Matplotlibout了发现一款手绘可视化神器',\n",
       " '高三学生凭神经网络论文获赞研究网络暴力',\n",
       " '字节跳动创业史',\n",
       " '世界各国GDP正在改变Python告诉你',\n",
       " '网易向前同事道歉',\n",
       " '京东&尼尔森联合出品2019用户生命周期白皮书',\n",
       " 'AI图谱不只发现「特朗普」的世界',\n",
       " '推荐一位坚持原创的数据分析朋友',\n",
       " '统计学大盘点',\n",
       " 'Chrome最好用的插件都在这里了',\n",
       " '数据埋点采集的那些事',\n",
       " '7大Python特殊技巧',\n",
       " 'TensorFlow2.0中文书配套B站完美视频教程',\n",
       " '北上广数据分析师需求真的那么香吗',\n",
       " '数据告诉你有多少人折戟全球总决赛',\n",
       " '重磅官宣：GitHubApp终于来了',\n",
       " '70道NumPy测试题',\n",
       " '哪种PythonIDE最适合你',\n",
       " 'PDF&PPT下载Github9.9KStar的《神经网络与深度学习》',\n",
       " '爱奇艺真的有1亿付费会员扒了扒用户数据告诉你更多真相',\n",
       " '强大的项目-秒变Python脚本为ML工具',\n",
       " '聊聊数据指标体系搭建流程',\n",
       " '那些让人爆笑的知乎沙雕问题',\n",
       " '如何看待2020校招数据分析岗位招聘情况',\n",
       " '统计学的假设检验',\n",
       " '我就是个取数的怎么了头铁',\n",
       " '腾讯背后的神秘金主1000亿美元资本大收割',\n",
       " 'Pandas循环提速7万多倍Python数据分析攻略',\n",
       " '如何将Numpy加速700倍用CuPy呀',\n",
       " '解一下TMD几道热门数据分析面试题',\n",
       " '几种常用用户行为分析模型简述',\n",
       " 'ABtest数据分析师面试必知',\n",
       " '现在的计算机专业已经沦为调包专业了吗',\n",
       " '数据科学精简版PDF助力复盘你的DS知识圈',\n",
       " '15个边玩游戏边学编程的网站',\n",
       " '数据化运营的11个步骤',\n",
       " '快速学习Python正则表达式中文资源和互动学习网站',\n",
       " '【手把手教你】搭建自己的量化分析数据库',\n",
       " 'Pandas0.25来了别错过这10大好用的新功能',\n",
       " '常用数据分析指标和术语DA面试必知',\n",
       " '向Excel说再见神级编辑器统一表格与Python',\n",
       " '字节跳动新的黑马帝国',\n",
       " '8种你可能正在写错的SQL用法',\n",
       " '使用Python分析14亿条数据',\n",
       " '统计学公开课大盘点',\n",
       " '1900页数学基础：面向CS的线性代数、拓扑、微积分和最优化',\n",
       " 'JupyterNotebook界面也可以如此炫酷有人把它玩出了新花样',\n",
       " '15分钟进击Kaggle大赛Top2%',\n",
       " '涨粉百万后我的生活有什么变化',\n",
       " '程序员听歌的正确姿势',\n",
       " '杀手级AI补全代码工具问世支持23种语言及5种主流编辑器',\n",
       " '超全Python速查表登上GitHub热榜标星4600+资源',\n",
       " '老外神网站打造专属于自己的书籍屋~',\n",
       " '6月份火爆的Python项目附Github链接',\n",
       " '一键获取新技能玩转NumPy数据操作',\n",
       " '8个可免费下载论文的网站',\n",
       " '应该掌握的30个数据挖掘重要知识点',\n",
       " '用Python分析了下许嵩的歌受伤过无疑了',\n",
       " '谷歌出台网页爬虫新标准!',\n",
       " '别人的研究生三年可以把他作为baseline了解一下',\n",
       " '用Python做交互式图形的项目',\n",
       " '普林斯顿博士NumPy手写全部主流机器学习模型代码超3万行',\n",
       " '对用户画像标签体系的一点思考',\n",
       " 'Python机器学习五步曲',\n",
       " '8个常用的Python爬虫技巧分分钟提高效率',\n",
       " '做了点SQL题',\n",
       " '数据团队思考：数据驱动业务比技术更重要的是思维的转变',\n",
       " '49个Python学习资源建议收藏',\n",
       " 'Github获2万星Python的51个秘密曝光',\n",
       " 'Python快速分析和预测股票价格实战分享',\n",
       " '10个Python数据分析小技巧巨炫',\n",
       " '关于数据、产品和人',\n",
       " '数据可视化图表你选对了吗',\n",
       " '2019数据分析/机器学习工具调查发布',\n",
       " 'GitHub热门：各大网站的Python爬虫登录汇总',\n",
       " '2019互联网女皇报告文末附下载链接',\n",
       " 'Kaggle美女小姐姐自述：我是怎么成为竞赛中Top0.3%的',\n",
       " '机器学习重磅资源文档新手福音',\n",
       " '2019数字中国指数发布：100强城市里你的家乡在什么位置',\n",
       " '17款可视化工具让你的数据更美观',\n",
       " '构建AI前的数据准备SQL要比Python强',\n",
       " '一边吃粽子一边思考流量数据分析',\n",
       " '图解SQL里的各种JOIN',\n",
       " '数据分析必不可少之数据仓库',\n",
       " 'Github标星2w+热榜第一如何用Python实现所有算法',\n",
       " '《统计学习方法》(李航)读书笔记',\n",
       " '你的标签是什么努力真诚热爱',\n",
       " '最全数据科学手册附百度云自取链接',\n",
       " '动态图表制作指南神器',\n",
       " '50款大数据分析神器：Excel之外',\n",
       " '520外卖数据详解复杂的高校虐恋关系',\n",
       " '30个Python常用功能精心整理版',\n",
       " '数据科学领域的Python库附链接',\n",
       " '从数学基础到统计学习重磅资料下载',\n",
       " '好文带你读懂机器学习',\n",
       " '独角兽企业TOP1502019版',\n",
       " '7种主流数据分析软件比较附经典教材推荐',\n",
       " '除Kaggle外还有哪些顶级数据科学竞赛平台',\n",
       " '常用分类模型评估指标',\n",
       " '关于统计学中的N-1.',\n",
       " 'Github标星过万100天Python学习资源文中附链接',\n",
       " '6大机器学习的常用方法',\n",
       " '数据图表的使用',\n",
       " 'BAT的数据分析岗求职经验分享',\n",
       " 'Github标星3K+热榜第三一网打尽数据科学速查表',\n",
       " '8个流行的Python可视化工具包你喜欢哪个',\n",
       " '你理解Python中多进程和多线程吗',\n",
       " '数据可视化发现[吃鸡]秘密',\n",
       " '183条地铁线路3034个地铁站发现中国地铁名字的秘密',\n",
       " 'Top4数据科学竞赛解决方案附带报告+方案+代码讲解+数据集',\n",
       " '',\n",
       " '用户画像',\n",
       " '“数据分析岗位”招聘情况分析Execl版',\n",
       " '漫威电影故事数据告诉你答案',\n",
       " '统计学VS机器学习',\n",
       " '深度学习框架你的选择是',\n",
       " 'DS究竟是做什么滴滴数据科学部出品',\n",
       " '在硅谷人生的可能性不只有996',\n",
       " '国内多所重点大学课程资源附下载链接',\n",
       " '巴黎不哭十亿数据精准扫描帮卡西莫多重新找回他的玫瑰花窗',\n",
       " '20个Pandas代码助力数据从业人员新征程',\n",
       " '可视化技能工具Get',\n",
       " '数据告诉你男女有别',\n",
       " 'Python定制菜谱翻译不到80行代码',\n",
       " '【漫画】：人工智能简史',\n",
       " '只需0行代码文科生也能画词云图',\n",
       " '四川大学到底有多漂亮耗时一年的作品送给大家',\n",
       " '玩命进了985终究还是逃不过996',\n",
       " '学Python不看文档怕是不得行',\n",
       " '电商数据分析的「六脉神剑」',\n",
       " '数据分析招聘要求：熟练SQL精简版复习大纲送给大家',\n",
       " '求职季HR潜台词了解一波',\n",
       " 'LPL你更看好哪只队伍',\n",
       " '想放弃的那个夜晚',\n",
       " '飞机飞机Analysis',\n",
       " '埃航失事纵观历史空难数据',\n",
       " '搭建一个可以识花的机器学习APP附视频教程',\n",
       " '怎样租房最省钱数据分析一下',\n",
       " '数据分析只需要看懂一张图附下载链接',\n",
       " '机器学习课程Top5资源吴恩达和哥大等课程入选',\n",
       " '世界上最有价值的不是石油而是数据',\n",
       " '一份大佬的机器学习笔记附下载链接!',\n",
       " '学习观5.5：怎么设计你自己的思维导图画法',\n",
       " '代码改变我的命我要用代码改变100万女性的命',\n",
       " 'Github：使用scikit-learn练手机器学习',\n",
       " '腾讯技术大佬教你如何写简历',\n",
       " 'Pandas里面的加权平均我猜你不会用',\n",
       " 'PythonVSR,你会选择谁呢',\n",
       " 'Python数据分析系统步骤介绍',\n",
       " 'GitHub：数据科学最全资源集合',\n",
       " 'Python基础到进阶十个问题起飞',\n",
       " '美国IT大牛为你解答数据科学!',\n",
       " '关于Python的内置对象你真的全部了解',\n",
       " '从硬件架构到编程逻辑Python入门打卡',\n",
       " '“数据管道”公众号内容初步调整计划内含福利',\n",
       " '十万条评论告诉你给《流浪地球》评1星的都是什么心态',\n",
       " '你是那个最会写情诗的Python猿吗',\n",
       " '还不赶快用Python分析一下你喜欢的球员',\n",
       " '数据分析之PandasVSSQL',\n",
       " '中英字幕最棒的Python学习视频送你',\n",
       " '这些祝福和干货比那几块钱的红包重要的多',\n",
       " '只要8个问题就知道你Python的水平',\n",
       " 'Python模拟社会财富分配',\n",
       " '面试必备之Python深、浅拷贝',\n",
       " 'Python表情包解释为什么吃多了会拉shi',\n",
       " '都说了解PCA那你知道ICA吗',\n",
       " '线性回归只能用sklearn实现吗',\n",
       " '你会用Python做数据预处理吗',\n",
       " '你愿意花十分钟系统了解数据分析方法吗']"
      ]
     },
     "execution_count": 253,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 筛选标题字典（去掉符号）\n",
    "\n",
    "标题字典\n",
    "for k,v in 标题字典.items():\n",
    "    标题字典[k] = 标题字典[k].replace(' ','')\n",
    "    标题字典[k] = 标题字典[k].replace('！','')\n",
    "    标题字典[k] = 标题字典[k].replace('，','')\n",
    "    标题字典[k] = 标题字典[k].replace('。','')\n",
    "    标题字典[k] = 标题字典[k].replace('？','')\n",
    "\n",
    "文本=[]\n",
    "for k,v in 标题字典.items():\n",
    "    文本.append(v)\n",
    "文本"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 进行分词生成词云可视化操作\n",
    "\n",
    "from wordcloud import WordCloud\n",
    "import matplotlib.pyplot as plt\n",
    "import pandas as pd\n",
    "import jieba"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 242,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 导出文本。\n",
    "for i in 文本:\n",
    "#     print(i)\n",
    "    with open(\"/Users/autumnhui/Desktop/公众号/标题数据.txt\", \"a\", encoding='utf-8') as f:\n",
    "        f.write(i)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 243,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "关于 数据 分析师 的 几点 思考 5 个 常用 的 大 数据 可视化 分析 工具 微软 官方 再次 上线 了 Python 教程 ， 这次 比较 高级 搜索引擎 背后 的 经典 数据结构 和 算法 首发 ， 全网 独 一份 的 数据分析 资源 ， 过会 就 删 ！ ！ SQL   查询 优化 之   WHERE   和   LIMIT   使用 索引 的 奥秘 「 数据分析   」   B 站 市值 破 百亿 ， 你 真的 不 考虑 当个 up 主 吗 ？ 「 经验总结 」 在 滴滴 和 头条 干 了   2   年 推荐 一位 大 数据分析 工程师 朋友 最全 Python 自动化 办公 总结 Python3   网络 爬虫 之 视频 下载 ， 那些 事儿 ！ 聊聊 最近 SQL   进阶 技巧 你 这 数据 接口 设计 的 真 ” 辣鸡 “ ， 简直 没法 看 ！ 4 月份 最 热门 的 11 个 Python 开源 项目 — — 面试 、 爬虫 、 机器 学习 应有尽有 ！ 常见 数据分析 规范 统计学 知识 大 梳理 （ 终极 篇 ） 网传 互联网 公司 加班 表 ， 哈哈哈 这 也 太 真实 了 吧 ！ 数据 分析师   or   算法 工程师 中国 博士 开发 可 交互 全球 疫情 地图 ， GitHub   已有   4500   star ！ 这 5 点 让 你 拥有 数据分析 思维 研究生 导师 讨厌 什么样 的 学生   ？ HSQL 常问 的 这 几点 百度 工程师 非法 控制 公司 服务器 “ 挖矿 ” ： 4 个 月 获利 10 万 ， 被判 坐牢 3 年 实至名归 ！ NumPy   官方 早有 中文 教程 ， 还有 防脱发 指南 一个 案例 教会 你 ： 如何 对 产品 做 数据分析 ？ 数据 分析师 必知 的 那些 Hive - SQL 实战   |   Kaggle 竞赛 ： 预测 二手车 每年 平均 价值 损失 女性 消费 特征分析 报告 对不起 ， 让 大家 失望 了 数据 和 业务 的 关系 是 什么 ？ 李宏毅 机器 学习 2020 版 正式 开放 上线   |   附 B 站 观看 链接 5 个 热 搜 ， 看 2019 全球 AI 这 一年 最新 微信 零钱 免费 提现 方法 （ 2020 版 ） Python 数据 分析师 不可 错过 的 优质 项目 数据分析 的 5 个 坑 5 月 1 日新规 ！ 别 再 随便 删微信 聊天记录 Python 和 Excel 终于 可以 互通 了 ！ ！ 披 着 数据 分析师 的 外衣 ， 干着 鱼龙混杂 的 活用   SQL   而 不是   Python   处理 文本 数据 微软 官方 上线 了 Python 教程 ， 7 个 章节 就 把 Python 说通 了 ！ 数据 可视化 的 10 个 关键 术语 劝 你们 不要 过度 迷信 数据分析 ！ 一句 SQL ， 我 有 6 种 写法 看下 这 7 家 互联网 公司 的 数据 科学技术 栈 阿里 P8 质疑 蒋凡 妻子 微博 “ 被控 评 ”   遭 辞退 ，   P10 领导 回应 一定 要 培养 数据分析 思维 ！ 10000 字 Pandas 基础 + 进阶 笔记 ！ 转行 数据 数据 师 不用 怕 没 项目 ！ 绘制 炫酷 的 地图 ， 不 只是 pyecharts ！ 阿里 处分 蒋凡 取消 合伙人 ！ 背后 另有 黑幕 ？ 14 个 数据分析 和 机器 学习 项目 ！ 附 数据 集 如何 分析 一家 上市公司 ？ （ 12000 + 字 ） 5   分钟 完全 了解   SQLAlchemy 讲 一下 数据分析 思维 可以 不用 到处 爬 数据 了 Python3   网络 爬虫 （ 一 ） ： 初识 网络 爬虫 之夜 探老 王家 Python3   网络 爬虫 （ 二 ） ： 下载 小说 的 正确 姿势 关于 数据 可视化 图表 的 制作 ， 你 需要 关注 的 30 个 小 技巧 上交 大 保卫处 招聘 要求 “ 硕士 及 以上学历 ” 引热议 ， 学校 正式 回应 了 ！ 推荐 5 款 免费网 盘 ， 空间 大 不 限速 ！ 不 懂 数据分析 框架 ， 你 拿 头 去 分析 ？ 用   Python   实现 粒子 群 算法 互联网 大厂 的 薪资 和 职级 一览 用   Python   分析 微信 群聊 记录 ， 是 怎样 一种 体验 ？ 4 个 数据分析 思路 分享 ： 关键 指标 与 产品 如何 把握 ？ 数据 岗位 以后 再也 没有 数据 分析师 ！ “ 罗永浩 抖音 首秀 ” 销售 数据 的 可视化 大屏 是 怎么 做 出来 的 ？ 工作 流 一目了然 ， 看 小姐姐 用动图 展示 10 大 Git 命令 推荐 10 款 效率 翻倍 的 撸 码 神器 ！ 招 数据 分析师   |   快手 商业化 团队 玩转 数据处理 120 题 ｜ Pandas & R 把 你 的   Python   代码 提速 7 倍 Pandownload   下线 了 ， 我花 了   30   分钟 自己 搭建 了 一个 网盘 Python   3.9   新 特性 ： 任意 表达式 可 作为 装饰 器 ！ MySQL 查询 连续 打卡 信息 ？ 看 ！ 用 Python   一键 导出 微信 阅读 记录 Pandas 进阶 修炼 120 题 推荐 一款 功能强大 的 词云 工具 ， 支持 更改 形状 和 背景色 、 自定义 风格 、 颜色 流动 … 这些 用   Python   写 的 牛 逼 程序 / 脚本 ， 你 玩 过 吗 ？ B 站上 爆红 的 数学 视频 ， 居然 都 是 用 这个 开源 项目 做 的 数据分析 干货   |   留存 率 模型 应该 怎么 搭建 ？ 知网 论文 免费 下载 ， 请 速度 存好 ！ Google 等 厂 宣布 取消 部分 offer 。 做好 异常 数据分析 ， 看 这篇 就 够 了 GBDT 、 XGBoost 、 LightGBM 的 区别 和 联系 三万 字 、 91 道 MySQL 面试题 （ 收藏版 ） 阿里 数据 分析师 ， 非技术 向 面经 。 北大 数学 确实 强 ！ 阿里 数学 竞赛 决赛 ， 入围 人数 加 起来 超过 清华 和 南大 之 和 ； 还有 13 位 中学 选手 ， 最小 14 岁 清洗 数据 ， 我 习惯 用 这   7   步 ！ 5 个 趣味 Python 练手 项目 数据 采集 技术 简介 一份 可以 令   Python   变快 的 工具 清单 想 爬 哪里 点 哪里 ， 这 款 神奇 的 插件 你 值得 拥有 ！ 他 成绩 一般 ， 大二 却 破解 世界 难题 ， 三 院士 致信 中央 ， 22 岁 破格 成 教授 三分钟 带 你 看遍 世界 大学 排行 Tableau 实战 ： 银行信贷 客户 可视化 分析 清华 学生 总结 的 算法 学习 方法 如何 把 pyecharts 的 炫酷 延续 到 PPT 里 ！ ？ Sql 如何 统计 连续 打卡 天数 这 5 种 动态 炫酷 图 ， 也 是 用 Python 画 的 卡内基 梅隆 大学 免费 开放 编程 课程 啦 ！ 一个 靠 爬虫 赚钱 的 思路 划 重点 ！ 你 还 在 困惑 MySQL 中 的 \" 锁 \" 吗 ？ PyCharm   2020.1   稳定版 发布 深扒瑞幸 董事长 陆正耀 走过 的 “ 野 路子 ” 不 懂 代码 也 能 爬 取 数据 ！ Feed 流 产品 数据分析 、 评估 及 优化 Hive 使用 必知 必会 系列 所有人 问 俞军 生存 分析 与 用户 行为 如何 联系 起来 Hive   SQL50 道 练习题 不 就是 用 Python 做个 动态图 吗 ？ 看招 专访 商汤 科技 联合 创始人 林达华 可怕 ！ 3.83   亿 开房 记录 遭 泄露 ， 这家 酒店 竟然 又 被 爆 泄露 520 万 用户 数据 了 实用 ， 5 个 案例 让   Python   输出 漂亮 的 表格 ！ hive 中 窗口 函数 实现 原理 复盘 程序员 常用 资源 工具 集合 （ 建议 收藏 ） 最近 在 用 的 一款 可视化 工具 用   Python   画 梦想 矩阵 为了 抓取 弹幕 ， 你 需要 知道 的 一些 二进制 数据 常识 腾讯 是 如何 支撑   6W   员工 远程 工作 的 ？ 昨天 网站 都 变成 灰色 了 ， 这 其中 是 怎么 实现 的 ？ 京都大学 天才 数学家 证明 abc 猜想 ， 全球 只有 十几个 数学家 读懂 LeetCode 中 ， Python 一行 代码 能干 啥 ？ 「 2020 」 PDD 数据分析 笔试 题   |   附 解答 BD 云 资源 搜索 神器 ， 自带 6 个 引擎 ， 还 能 查询 提取 码 ！ 从此 ， 再 无 「 Office 」 数据 分析师 生存 手记 让 人 想 骂街 的   Python   炫技 操作 ： 条件 语句 的 七种 写法 常用 统计 检验 的 Python 实现 Excel 的 分列 功能 很 强大 ， SQL 能 实现 吗 ？ 浑水 做 空瑞幸 咖啡 报告 中文翻译 版 Python 正则表达式 ， 这 一篇 就够 了 ！ 工作 多年 为什么 还要 转行 ！ ！ ！ 你 想要 的 Python 面试 都 在 这里 了 【 315 + 道题 】 整理 一套 互联网 行业 的 数据 指标 送给 你 数据模型 告诉 你 ， 现在 可以 放松 了 吗 ？ 如何 用 数据 解决 实际 问题 ？ 不写   XPath ， 照样 轻轻松松 抓取 大部分 博客 全球 疫情 引起 P 站 访问量 激增 数据 可视化 的 基本 流程 总结 我 拿到 了 腾讯 最爱考 的 数据分析 面试题 用 Pyecharts 对 疫情 数据 进行 可视化 分析 微信 「 看一看 」 小 秘密 英 伟达 小姐姐 的 Python 隐藏 技巧 合集 ， 推特 2400 赞 ， 代码 可以 直接 跑 Python 操作 Excel   哪家 强 ？ GitHub   搜索 骚 技巧 ， 太好 用 了 ！ 春晚 冠名 那些 事儿 字节 跳动 的 二号 人物 用 Python 绘制 诱人 的 桑基图 ， 一眼 看透 熬夜 和 狗 粮 的 秘密 ... 文科 清华 第一 ， 理科 北大 第一 ！ 新版 高考 分数 百强 大学排名 发布 ！ 5 个 酷毙 的 Python 神器 工具 小红书 做 直播 的 背后 ， 隐藏 了 什么 秘密 ？ 有关 用户 留存 模型 的 一种 设计 方法 来 ， 推荐 一位 BAT 任职 的 数据 大神 数据 团队 思考 ： 数据 人 的 通用 技能 要求 小 尝试 ： 基于 指标体系 的 数据仓库 搭建 和 数据 可视化 一款 SQL 自动 检查 神器 ！ 实战   |   Kaggle 竞赛 ： 华盛顿 特区 首都 自行车 租赁 预测 等一等 ， 你 的 多线程 可别 再 乱 join   了 。 姚班 天才 漆子 超 、 IOI 金牌得主 陈启峰 等 联手 进军 AR 领域 ： 全员 顶尖 科技 公司 技术 背景 ， 打造 “ 5G + AI + AR ” 先锋 商业 分析 3 步 走   |   实例 12 种 高效 Numpy 和 Pandas 函数 为 你 加速 数据分析 用 python 分析 了 5000 部 票房 ， 发现 赚钱 的 电影 都 有 这些 特征 ~ 最新 ！ 这些 高校 已 确定 暑假 时间 ！ 最早 7 月 10 日 … … 阿里 达摩院 数学 竞赛 新一轮 考题 曝光 ， 4 道题 限时 48 小时 ！ 分析 B 站 100 万 + 视频 ， 发现 竟然 有 这么 多 干货 资源 。 10 个 必会 的   PyCharm   技巧 教 你 看 数据 后台 中 的 常用 指标 ， 这些 要 重点 关注 ！ 数据 分析师 刚入 职 第一 月 需要 注意 什么 瀑布 图有 什么 用 ？ 怎么 画 ？ 又 一所 重量级 大学 要来 了 ！ 投资 100 亿 ， 今年 选 校长 美股 跌幅 最大 公司 排行榜 ， 巴菲特 哭 晕 在 厕所 BI 分析师 痛 在 哪里 ？ BI 分析师 为何 痛 ？ BI 分析师 如何 破破局 Pandas   4   个 小   trick ， 都 很 实用 ！ 厚颜无耻 ！ 国内 竟 有人 把   JSON   注册 成 自有 商标 ！ 95 后 互联网 实习生 的 2019SQL 语句 + 语法   I   数据分析 面试 必备 ！ 只 需   10   行 代码 ， Python   教 你 自制 屏幕 翻译 工具 ， 高效 办公 17 岁 高中生 独立 开发 全球 最火 疫情 追踪 网站 ！ 他 的 偶像 是 乔布斯 我 私藏 的 算法 刷题 网站 都 在 这里 了 ！ 让 数据分析 更 简单 的 Panda 技巧 ： 万能 转 格式 、 轻松 合并 、 数据压缩 ... 全国 医疗 资源 排名 ， 各省 差距 有 多 大 ？ 数据 分析师   or   算法 工程师 中国 博士 开发 可 交互 全球 疫情 地图 ， GitHub   已有   4500   star ！ 这 5 点 让 你 拥有 数据分析 思维 研究生 导师 讨厌 什么样 的 学生   ？ HSQL 常问 的 这 几点 百度 工程师 非法 控制 公司 服务器 “ 挖矿 ” ： 4 个 月 获利 10 万 ， 被判 坐牢 3 年 实至名归 ！ NumPy   官方 早有 中文 教程 ， 还有 防脱发 指南 一个 案例 教会 你 ： 如何 对 产品 做 数据分析 ？ 数据 分析师 必知 的 那些 Hive - SQL 实战   |   Kaggle 竞赛 ： 预测 二手车 每年 平均 价值 损失 女性 消费 特征分析 报告 对不起 ， 让 大家 失望 了 数据 和 业务 的 关系 是 什么 ？ 李宏毅 机器 学习 2020 版 正式 开放 上线   |   附 B 站 观看 链接 5 个 热 搜 ， 看 2019 全球 AI 这 一年 清华 特奖 高 天宇 干货 分享 ， 本科 4 篇 顶会 论文 如何 做到 电商 数据分析 流程   |   Excel 实操 Python 爬虫 多种 方式 对比 薪资 没 那么 高 ， 延毕率 超 60% ， 现代人 读博 都 图 什么 ？ 生成 词云 的 几种 方式 2020 年 抖音 用户 画像 报告 MIT   教授 创业 公司 将   Facebook   告上 法庭 句句 诛心 的 博士论文 致谢 及 女朋友 回应 的话 利用 Python 实现 数据 偏移 学会 这些 Excel 技巧 日本 神秘 男子 开发 可 自动 去码 AI ， 能 “ 伪造 ” 性器 ， 震动 业界 从 平安 科技 到 商汤 科技 ， 谈谈 我 的 实习 经历 用   Python 可视化 神器   Plotly   动态 演示 全球 疫情 变化趋势 京东 、 淘宝 、 饿 了 么 的 提升 用户 留存 率 技巧   |   推荐 收藏 如何 评价   2020   考研 计算机 硕士 诸多 高校 继续 「 爆炸 」 ？ 钉 钉 火到 日本 ， 日本 学生 哭 着 打 一星 ， 哈哈哈哈 确诊 病例 直逼 5000 ， 意大利人 为什么 还 不 把 疫情 当回事 ？ 实战   |   电信 客户 流失 分析 与 预测 背 KPI ， 想要 实现 有效 增长 ？ 先 来 搞懂 这 3 个 指标 ！ 《 本人 娶 刘亦菲 的 可行性 报告 》 被 省级 期刊 收录 ！ 杂志社 回应 ： 早年 管理 不 规范 新手 必看 ： 数据分析 10 大 方法 ！ 这些 SQL 查询 小 技巧 ， 一般 人 我 不 告诉 他 这些 画 居然 是 用 Excel 画 的 ？ 我用 的 Excel 可能 是 假 的 … … 就 想 写个 爬虫 ， 我 到底 要学 多少 东西 啊 ？ 这份 「 数据 科学 」 资源   |   强烈推荐 张一鸣 ： 做 CEO 要 避免 理性 的 自负 ！ 新 用户 分析 的 一些 注意 点 2020 年 QS 世界 大学排名 发布 ， 清华 表现 亮眼 8   行 Python 代码 搭建 一个 本地 站点 ， 可以 为所欲为 啊 ！ 推荐   13   个   Python   新手 练级 项目 不要 被 这 3 个 数据 “ 假象 ” 迷惑 了 如何 做出 好看 的 可视化 我 在 华为 当 “ 网红 ” ！ 经此 一疫 ， 数说 互联网 公司 格局 发生 的 变化 Python   常见 的 17 个 错误 分析 我 在 滴滴 数据分析 岗 实习 了 8 个 月 6   个接 私活 的 网站 ， 你 有 技术 就 有钱 ！ 哇 ！ 微软   Excel   竟然 还 能 实现   CV   算法 我用 Python 算出 了 同事 的 身份证 号码 ！ 别 一直 用   Select   *   了 130   个 相见恨晚 的 超 实用 网站 ， 一次性 分享 出来 教育部 最新 通知 ： 这 类 大学生 可 先 返校 数据分析 常用 的 Excel 函数 合集 （ 上 ） 数据分析 常用 的 Excel 函数 合集 （ 下 ） 太 突然 ！ 北大方正 破产 了 ！ 负债 3029 亿元 ！ Vlookup 进阶 ！ 带 你 又 快又准 的 引用 数据 Python3.9 又 更新 了 ： dict 内置 新 功能 ， 正式版 十月 见面 百度 内部 培训 PPT 流出 ： 数据分析 的 道 与术 如何 看待 清华大学 将 线性代数 教材 改为 英文 教材 ？ 新手 必看 ！ 统计学 知识 大 梳理 年轻人 住房 消费 报告 ： 月入 多少 才能 实现 住房 自由 ？ 还 真 有人 「 删库 跑 路 」 ， 反思 数据安全 2020 无春 招别 再 从 0 构建 数据 指标体系 了 墙裂 推荐 ！ B 站上 的 Python 学习 资源 掌握 SQL 高级 功能   ！ 实战 业务 问题 分析 未来 诺奖 或 出自 他们 ！ 16 位 华人 学者 获 美国 斯隆 研究 奖 当当网 这次 可能 要凉 了 Github 上 的 这 两份 学习 资料 ， 据说 30 天 就 能 学会 一门 编程语言 用 AI 抗 \" 疫 \"   |   滴滴 免费 开放 口罩 佩戴 识别 技术 重大突破 ！ 西湖 大学 揭开 新冠 病毒 侵染 人 体细胞 谜团 一次 非常 有意思 的   SQL   优化 经历 爬取 数据 不是 非要 Python 招聘   |   数据分析 方向 Pandas 使用 的 25 个 技巧 清华北大 南 大 全面 “ 线上 开学 ” ， 10   大 直播 神器 齐 亮相 ！ 纯 文本 秒 变 Markdown   |   只 需 一行 代码 30 种 SQL 语句 优化 ！ 又 一个 吊打 百度网 盘 的 开源 神器 招聘   |   西湖 大学 深度 学习 实验室 拆解 数据分析 常见 的 业务 指标 多所 高校 给 学生 发 疫情 补助金 ， 研究生 本科 均 有 ， 最高 2000 元 ！ 来 了 ， SQL 在线 模拟器 一个 校招 面试官 的 1 天 RFM 模型 深入 解读 写 好 SQL 很 有 必要 数据 科学 电子书 25 强大 合集 ！ 最近 面 了 十多个 数据 分析师 ！ 医学 权威 期刊 《 柳叶刀 》 最新 文章 ： 北上 广深 等 城市 疫情 潜在 传播 爆发 时间 预测 瑞德 西韦 今起 免费 供 武汉 重症 患者 试用 ， 吉利 德 CEO ： 治病 第一 ， 不想 卷入 专利 纠纷 DAU 数据 异常 分析 思路 中国 知网 道歉 了 ！ 50 题 matplotlib 从 入门 到 精通 数据 告诉 你 ， 网友 们 都 怎么 打发 时间 教育部 官宣 ！ 自主 划线 高校 考研 复试 录取 工作 推迟 举行 明确 数据分析 目标 的   3   个 步骤 最新 疫情 数据 报告 已 到达 你 的 邮箱 ！ 我 为什么 要 去 北京电影学院 进修   ？ 清华大学 网上 课程 面向全国 免费 开放 ！ 无需 登录 、 注册 ！ 在家 上 清华 ！ 浅度 测评 ： requests 、 aiohttp 、 httpx   我 应该 用 哪 一个 ？ 4000 万人 看 武汉 直播 造 医院 ， 还给 挖掘机 挨个 起名 The   10   Algorithms   Machine   Learning   Engineers   Need   to   Know 不写 一条   SQL   ？ 照样 分析 数据库 ！ 统计学 常犯 的 18 个 错误 ， 请 务必 跳过 这些 坑 ！ 画像 分析 腾讯 捐 3 亿 、 京东 顺丰 物流 优先 派送 ， 互联网 公司 驰援 武汉 ！ Python   处理 3 万多条 数据 ， 只要 3 秒钟 ？ 在线 电子 烟花 春节 档 ， 全部 撤档 ！ 安利 一位 Python 终身 学习者 。 数据 推测 ： 哪些 城市 新型 肺炎 疫情 更 容易 被 低谷 ？ 互联网 人 不 相信 眼泪 14 天 锁定 新型 肺炎 元凶 背后 ， 是 14 年 的 技术 竞赛 帝都 搬 砖 四年 ， 他 决定 回老家 考 公务员 。 Python2   已 终结 ， 入手 Python   3 ， 你 需要 这 30 个 技巧 ！ 数据分析 里 最 基础 的 思维 。 N 种 方式 教你用 Python 读写 Excel 等 数据文件 我 在 上海 实习 的 日子 。 微信 没有 张 总 ！ 私藏   |   免费 电子书 下载 网站 。 哪些 行业 难逃 35 岁 危机 ？ Python   开源 项目 的 正确 打开方式 。 数据分析 最全 的 基础知识 都 在 这 了 ！ 50 道 练习 带 你 玩转 Pandas800 名 科学家 联名 主张 废除 p 值 ！ 斯坦福 教授 ： 没有 p 值 ， 期刊 将 充斥 “ 无可辩驳 的 废话 ” 张一山 倒下 了 ， 惊醒 了 一大批 程序员 如果 你 还 在 犹豫 怎么 学   Python ， 看看 这位 大牛 的   3   个 秘籍 ！ 25 个 常用 Matplotlib 图 的 Python 代码 ， 干货 收藏 ！ 2019 年 ， 中国 顶尖 名校 毕业生 都 去 哪儿 了 ？ 数据分析 方向 选择 上 的 一点点 体会 。 华为 等 公司 年终奖 发了 多少 ？ 我 发现 了 养成 中美网 红 的 「 爆品 公式 」 竞赛 冠军 方案   |   2019CCF   BDCI   乘用车 销量 预测 这回 ， B 站 跨 年 晚会 \" 吊打 \" 各 卫视 ！ 怎样 写 好 一个   Python   函数 「 双非 」 研究生 数据分析 春招 心路历程 。 这 10 个 Excel 功能 ， SQL 也 能 实现 啦 ！ 再见 ， 我 亲手 创办 的 公司 ！ 《 给 数据 科学家 的 Python 技能 秘籍 》 ， 87 页 PDF ！ Jupyter 也 能 交互 可视化 ？ 清华 退学 天才 VS 阿里 P10 大牛 ！ 这才 是 程序员 加班 的 真正 原因 ！ 数据 分析师 正在 被 攻击 。 风控 数据 分析师 的 一天 。 10 个 常用 的 数据分析 商业 模型 。 工作 3 年 VS 读研 3 年 。 2020 华为 招聘 的 那位 年薪 百万 的 博士 ！ 淘宝 用户 分析 实操   |   SQL 版 Pandas ： Value _ counts 的 5 种 高效 技巧 。 数据分析 的   8   个 状态 “ 穷人 ” 才 是 电商 的 主战场 ？ 真的 值得 考研 吗 ？ 李子 柒 在 外国人 眼中 也 备受 争议 ？ Python   I   超 实用 的 20 段 代码 ！ 安利 一位 有趣 的 数据分析 朋友 ！ 讲真 ， 用 起来 很香 。 超级 菜鸟 如何 入门 数据分析 ？ 你 是 咸鱼 程序 猿 吗 ？ |   不好意思 ， 我 穿 背心 上班 ！ 过去 十年 ， 哪些 数据库 备受 欢迎 ？ 我 的 三年 数据分析 。 一份 好 的 简历 ！ 1 维到 6 维 数据 可视化 ， 你 敢 信 ？ 取消   985 / 211   ， 大 公司 招聘 就 没有 学历 潜规则 了 ？ 你 也 想 去 阿里巴巴 做 数据 分析师 ？ 第一批 90 后 30 岁 倒计时 ...... 介绍 一位 零 基础 转行 数据分析 的 好友   |   畅销书 作家 一份 大学 统计学 教授 推荐 的 统计学 书单 ！ 全部 下载 好 了 ！ 胡言乱语 。 网易 是 世界 最好 的 公司 ！ 5G 牛 在 哪 ？ 看 完 这 张图 你 就 懂 了 ！ 5   个 高效 简洁 的   Numpy   函数 ！ 爬取 Google 的 心酸 之 路 ！ Python 绘图 还 在 用 Matplotlib ？ out 了   ！ 发现 一款 手绘 可视化 神器 ！ 高三 学生 凭 神经网络 论文 获赞 ， 研究 网络 暴力 ！ 字节 跳动 创业史 ！ 世界 各国   GDP 正在 改变 ？ Python 告诉 你 ！ 网易 向前 同事 道歉 ！ 京东 & 尼尔森 联合 出品 ， 2019 用户 生命周期 白皮书 ！ AI 图谱 ， 不 只 发现 「 特朗普 」 的 世界 ！ 推荐 一位 坚持 原创 的 数据分析 朋友 统计学 大盘 点 。 Chrome   最好 用 的 插件 都 在 这里 了 数据 埋点 采集 的 那些 事 。 7 大   Python   特殊 技巧 ！ TensorFlow   2.0 中 文书 ， 配套 B 站 完美 视频教程 ！ 北上 广 数据 分析师 需求 真的 那么 香 吗 ？ 数据 告诉 你 ， 有 多少 人 折戟 全球 总决赛 ？ 重磅 官宣 ： GitHub   App   终于 来 了 ！ 70 道 NumPy   测试题 哪种 Python   IDE 最 适合 你 ？ PDF & PPT 下载   |   Github   9.9 K   Star 的 《 神经网络 与 深度 学习 》 爱奇艺 真的 有 1 亿 付费 会员 ？ 扒 了 扒 用户 数据 告诉 你 更 多 真相 强大 的 项目 - 秒 变   Python   脚本 为   ML   工具 聊聊 数据 指标体系 搭建 流程 那些 让 人 爆笑 的 知乎 沙雕 问题 ！ 如何 看待 2020 校招 数据分析 岗位 招聘 情况 ？ 统计学 的 假设检验 我 就是 个 取数 的 怎么 了 ？   头铁 ！ 腾讯 背后 的 神秘 金主 ， 1000 亿美元 资本 大 收割 Pandas 循环 提速 7 万多倍 ！ Python 数据分析 攻略 如何 将 Numpy 加速 700 倍 ？ 用   CuPy   呀 解 一下 TMD 几道 热门 数据分析 面试题 。 几种 常用 用户 行为 分析模型 简述 AB   test     |   数据 分析师 面试 必知   ！ 现在 的 计算机专业 已经 沦为 调包 专业 了 吗 ？ 数据 科学 精简版 PDF ， 助力 复盘 你 的 DS 知识 圈 ！ 15   个边 玩游戏 边学 编程 的 网站 。 数据 化 运营 的 11 个 步骤 。 快速 学习 Python 正则表达式 ， 中文 资源 和 互动学习 网站 ！ 【 手把手 教 你 】 搭建 自己 的 量化 分析 数据库 Pandas0.25 来 了 ， 别错过 这 10 大好 用 的 新 功能 常用 数据分析 指标 和 术语   |   DA 面试 必知 ！ 向 Excel 说 再见 ， 神级 编辑器 统一 表格 与 Python 。 字节 跳动 ， 新 的 黑马 帝国 。 8 种 你 可能 正在 写错 的 SQL 用法 使用   Python   分析   14   亿条 数据 统计学 公开课 大盘 点 1900 页 数学 基础 ： 面向 CS 的 线性代数 、 拓扑 、 微积分 和 最优化 Jupyter   Notebook   界面 也 可以 如此 炫酷 ？ 有人 把 它 玩出 了 新花样 15   分钟 进击   Kaggle   大赛   Top   2% 涨粉 百万 后   我 的 生活 有 什么 变化 ？ 程序员 听歌 的 正确 姿势 。 杀手 级 AI 补全 代码 工具 问世 ， 支持 23 种 语言 及 5 种 主流 编辑器 ！ 超全 Python 速查表 登上 GitHub 热榜 ， 标星 4600 +   |   资源 老外 神 网站   |   打造 专 属于 自己 的 书籍 屋 ~ 6 月份 火爆 的 Python 项目 ， 附 Github 链接 。 一键 获取 新技能 ， 玩转 NumPy 数据 操作 ！ 8   个 可 免费 下载 论文 的 网站 。 应该 掌握 的 30 个 数据挖掘 重要 知识点 ！ 用 Python 分析 了 下 许嵩 的 歌 ， 受伤 过 无疑 了 ！ 谷歌 出台 网页 爬虫 新 标准 ! 别人 的 研究生 三年 ， 可以 把 他 作为 baseline 了解 一下 ？ 用 Python 做 交互式 图形 的 项目 。 普林斯顿 博士 NumPy 手写 全部 主流 机器 学习 模型 ， 代码 超 3 万行 ！ 对 用户 画像 标签 体系 的 一点 思考 。 Python 机器 学习 五步曲 。 8   个 常用 的   Python   爬虫 技巧 ， 分 分钟 提高效率 ！ ！ 做 了 点 SQL 题 。 数据 团队 思考 ： 数据 驱动 业务 ， 比 技术 更 重要 的 是 思维 的 转变 49 个 Python 学习 资源   |   建议 收藏 Github   获   2   万星   |   Python   的   51   个 秘密 曝光 Python 快速 分析 和 预测 股票价格   |   实战 分享 。 10 个 Python 数据分析 小 技巧   |   巨炫 。 关于 数据 、 产品 和 人 。 数据 可视化 图表 ， 你 选 对 了 吗 ？ 2019 数据分析 / 机器 学习 工具 调查 发布   。 GitHub   热门 ： 各大 网站 的   Python   爬虫 登录 汇总 2019 互联网 女皇 报告   |   文末 附 下载 链接 ！ Kaggle   美女 小姐姐 自述 ： 我 是 怎么 成为 竞赛 中   Top   0.3%   的 ？ 机器 学习 重磅 资源 文档   |   新手 福音 ！ 2019 数字 中国 指数 发布 ： 100 强 城市 里 ， 你 的 家乡 在 什么 位置 ？ 17   款 可视化 工具 ， 让 你 的 数据 更 美观 ！ 构建 AI 前 的 数据 准备 ， SQL 要 比 Python 强 一边 吃 粽子 ， 一边 思考 流量 数据分析 ！ 图解   SQL   里 的 各种   JOIN 数据分析 必不可少 之 数据仓库 ！ | Github 标星 2w + ， 热榜 第一 ， 如何 用 Python 实现 所有 算法 《 统计 学习 方法 》   (   李航   )   读书笔记 你 的 标签 是 什么 ？   |   努力 ？ 真诚 ？ 热爱 ？ 最全 数据 科学 手册   |   附 百度 云 自取 链接 ！ 动态 图表 制作 指南   |   神器 ！ 50 款大 数据分析 神器   ： Excel 之外 。 520 外卖 数据 详解 复杂 的 高校 虐恋 关系 。 30   个 Python   常用 功能 ， 精心 整理 版 数据 科学 领域 的 Python   库     |   附 链接 ！ 从 数学 基础 到 统计 学习   |   重磅 资料 下载 ！ 好文带 你 读懂 机器 学习 。 独角兽 企业 TOP150   |   2019 版 ！ 7 种 主流 数据分析 软件 比较   |   附 经典 教材 推荐 ！ 除 Kaggle 外 ， 还有 哪些 顶级 数据 科学 竞赛 平台 常用 分类 模型 评估 指标 ！ 关于 统计学 中 的 N - 1 . Github 标星 过 万 ， 100 天 Python 学习 资源 ！ |   文中 附 链接 ！ 6 大 机器 学习 的 常用 方法 ！ 数据 图表 的 使用 。 BAT 的 数据分析 岗 求职 经验 分享 。 Github 标星 3K + ， 热榜 第三 ， 一网打尽 数据 科学 速查表 8 个 流行 的 Python 可视化 工具包 ， 你 喜欢 哪个 ？ 你 理解 Python 中多 进程 和 多线程 吗 ？ 数据 可视化 发现 [ 吃 鸡 ] 秘密 183 条 地铁 线路 ， 3034 个 地铁站 ， 发现 中国 地铁 名字 的 秘密 。 Top4   数据 科学 竞赛 解决方案   |     附带 报告 + 方案 + 代码 讲解 + 数据 集鹅厂 面经 分享   |   你 抗 的 住 这样 犀利 的 面试官 ？ 用户 画像 。 “ 数据分析 岗位 ” 招聘 情况 分析 ！ |   Execl 版漫威 电影 故事   |   数据 告诉 你 答案 ！ 统计学   VS   机器 学习 深度 学习 框架   |   你 的 选择 是 ？ DS 究竟 是 做 什么   ? |   滴滴 数据 科学部 出品 ！ 在 硅谷 ， 人生 的 可能性 不 只有 996 国内 多所 重点 大学 课程 资源   |   附 下载 链接 ！ 巴黎 不哭 ！ 十亿 数据 精准 扫描 ， 帮 卡西 莫多 重新 找回 他 的 玫瑰花 窗 20 个 Pandas 代码   |   助力 数据 从业人员 新 征程 ！ 可视化 技能 工具 Get ！ 数据 告诉 你 ， 男女有别 Python 定制 菜谱 翻译   |   不到 80 行 代码   ！ 【 漫画 】 ： 人工智能 简史 只 需 0 行 代码   |   文科生 也 能 画词 云图 ！ 四川大学 到底 有 多 漂亮   |   耗时 一年 的 作品 送给 大家 ！ 玩命 进 了 985 ， 终究 还是 逃不过   996 ? 学 Python 不看 文档 ？ |   怕 是 不得 行 ！ 电商 数据分析 的 「 六脉 神剑 」 数据分析 招聘 要求 ： 熟练 SQL ！ |   精简版 复习 大纲 送给 大家 ！ 求职 季   |   HR 潜台词 了解 一波 ！ LPL ， 你 更 看好 哪 只 队伍 ？ 想 放弃 的 那个 夜晚 飞机   |   飞机   |   Analysis   ！ 埃航 失事 ！ 纵观 历史 空难 数据 ！ 搭建 一个 可以 识花 的 机器 学习 APP   |   附 视频教程 怎样 租房 最 省钱 ， 数据分析 一下 ！ 数据分析 只 需要 看 懂 一张 图 ， 附 下载 链接 ！ 机器 学习 课程 Top5 资源 ， 吴恩达 和 哥大 等 课程 入选 ！ 世界 上 最 有 价值 的 不是 石油 ， 而是 数据 ！ 一份 大佬 的 机器 学习 笔记 ， 附 下载 链接 ! 学习 观 5.5 ： 怎么 设计 你 自己 的 思维 导 图画 法 ！ 代码 改变 我 的 命 ， 我要 用 代码 改变 100 万 女性 的 命 Github ： 使用 scikit - learn 练手 机器 学习 ！ 腾讯 技术 大佬 教 你 如何 写 简历 。 Pandas 里面 的 加权 平均 ， 我 猜 你 不会 用 ！ Python   VS   R , 你 会 选择 谁 呢 ？ Python 数据分析 ， 系统 步骤 介绍 ！ GitHub ： 数据 科学 最全 资源 集合 Python 基础 到 进阶 ， 十个 问题 起飞 。 美国   IT   大牛 为 你 解答 数据 科学 ! 关于 Python 的 内置 对象 ， 你 真的 全部 了解 ？ 从 硬件 架构 到 编程 逻辑 ， Python 入门 打卡 。 “ 数据 管道 ” 公众 号 内容 初步 调整计划 ， 内含 福利 ！ 十万 条 评论 告诉 你 ， 给 《 流浪 地球 》 评 1 星 的 都 是 什么 心态 ？ 你 是 那个 最会 写 情诗 的 Python 猿 吗 ？ 还 不 赶快 用 Python 分析 一下 你 喜欢 的 球员 ？ 数据分析 之 Pandas   VS   SQL ！ 中 英 字幕   |   最棒 的   Python   学习 视频 送 你 这些 祝福 和 干货 比 那 几块钱 的 红包 重要 的 多 ！ 只要 8 个 问题 就 知道 你 Python 的 水平 ！ Python 模拟 社会 财富 分配 。 面试 必备 之 Python 深 、 浅 拷贝 。 Python 表情 包 解释 为什么 吃 多 了 会 拉 shi ！ 都 说 了解 PCA ， 那 你 知道 ICA 吗 ？ 线性 回归 只能 用 sklearn 实现 吗 ？ 你会用 Python 做 数据 预处理 吗 ？ 你 愿意 花 十分钟 系统 了解 数据分析 方法 吗 ？ 关于 数据 分析师 的 几点 思考 5 个 常用 的 大 数据 可视化 分析 工具 微软 官方 再次 上线 了 Python 教程 ， 这次 比较 高级 搜索引擎 背后 的 经典 数据结构 和 算法 首发 ， 全网 独 一份 的 数据分析 资源 ， 过会 就 删 ！ ！ SQL 查询 优化 之 WHERE 和 LIMIT 使用 索引 的 奥秘 「 数据分析 」 B 站 市值 破 百亿 ， 你 真的 不 考虑 当个 up 主 吗 ？ 「 经验总结 」 在 滴滴 和 头条 干 了 2 年 推荐 一位 大 数据分析 工程师 朋友 最全 Python 自动化 办公 总结 Python3 网络 爬虫 之 视频 下载 ， 那些 事儿 ！ 聊聊 最近 SQL 进阶 技巧 你 这 数据 接口 设计 的 真 ” 辣鸡 “ ， 简直 没法 看 ！ 4 月份 最 热门 的 11 个 Python 开源 项目 — — 面试 、 爬虫 、 机器 学习 应有尽有 ！ 常见 数据分析 规范 统计学 知识 大 梳理 （ 终极 篇 ） 网传 互联网 公司 加班 表 ， 哈哈哈 这 也 太 真实 了 吧 ！ 数据 分析师 or 算法 工程师 中国 博士 开发 可 交互 全球 疫情 地图 ， GitHub 已有 4500star ！ 这 5 点 让 你 拥有 数据分析 思维 研究生 导师 讨厌 什么样 的 学生 ？ HSQL 常问 的 这 几点 百度 工程师 非法 控制 公司 服务器 “ 挖矿 ” ： 4 个 月 获利 10 万 ， 被判 坐牢 3 年 实至名归 ！ NumPy 官方 早有 中文 教程 ， 还有 防脱发 指南 一个 案例 教会 你 ： 如何 对 产品 做 数据分析 ？ 数据 分析师 必知 的 那些 Hive - SQL 实战 | Kaggle 竞赛 ： 预测 二手车 每年 平均 价值 损失 女性 消费 特征分析 报告 对不起 ， 让 大家 失望 了 数据 和 业务 的 关系 是 什么 ？ 李宏毅 机器 学习 2020 版 正式 开放 上线 | 附 B 站 观看 链接 5 个 热 搜 ， 看 2019 全球 AI 这 一年 最新 微信 零钱 免费 提现 方法 （ 2020 版 ） Python 数据 分析师 不可 错过 的 优质 项目 数据分析 的 5 个 坑 5 月 1 日新规 ！ 别 再 随便 删微信 聊天记录 Python 和 Excel 终于 可以 互通 了 ！ ！ 披 着 数据 分析师 的 外衣 ， 干着 鱼龙混杂 的 活用 SQL 而 不是 Python 处理 文本 数据 微软 官方 上线 了 Python 教程 ， 7 个 章节 就 把 Python 说通 了 ！ 数据 可视化 的 10 个 关键 术语 劝 你们 不要 过度 迷信 数据分析 ！ 一句 SQL ， 我 有 6 种 写法 看下 这 7 家 互联网 公司 的 数据 科学技术 栈 阿里 P8 质疑 蒋凡 妻子 微博 “ 被控 评 ” 遭 辞退 ， P10 领导 回应 一定 要 培养 数据分析 思维 ！ 10000 字 Pandas 基础 + 进阶 笔记 ！ 转行 数据 数据 师 不用 怕 没 项目 ！ 绘制 炫酷 的 地图 ， 不 只是 pyecharts ！ 阿里 处分 蒋凡 取消 合伙人 ！ 背后 另有 黑幕 ？ 14 个 数据分析 和 机器 学习 项目 ！ 附 数据 集 如何 分析 一家 上市公司 ？ （ 12000 + 字 ） 5 分钟 完全 了解 SQLAlchemy 讲 一下 数据分析 思维 可以 不用 到处 爬 数据 了 Python3 网络 爬虫 （ 一 ） ： 初识 网络 爬虫 之夜 探老 王家 Python3 网络 爬虫 （ 二 ） ： 下载 小说 的 正确 姿势 关于 数据 可视化 图表 的 制作 ， 你 需要 关注 的 30 个 小 技巧 上交 大 保卫处 招聘 要求 “ 硕士 及 以上学历 ” 引热议 ， 学校 正式 回应 了 ！ 推荐 5 款 免费网 盘 ， 空间 大 不 限速 ！ 不 懂 数据分析 框架 ， 你 拿 头 去 分析 ？ 用 Python 实现 粒子 群 算法 互联网 大厂 的 薪资 和 职级 一览 用 Python 分析 微信 群聊 记录 ， 是 怎样 一种 体验 ？ 4 个 数据分析 思路 分享 ： 关键 指标 与 产品 如何 把握 ？ 数据 岗位 以后 再也 没有 数据 分析师 ！ “ 罗永浩 抖音 首秀 ” 销售 数据 的 可视化 大屏 是 怎么 做 出来 的 ？ 工作 流 一目了然 ， 看 小姐姐 用动图 展示 10 大 Git 命令 推荐 10 款 效率 翻倍 的 撸 码 神器 ！ 招 数据 分析师 | 快手 商业化 团队 玩转 数据处理 120 题 ｜ Pandas & R 把 你 的 Python 代码 提速 7 倍 Pandownload 下线 了 ， 我花 了 30 分钟 自己 搭建 了 一个 网盘 Python3.9 新 特性 ： 任意 表达式 可 作为 装饰 器 ！ MySQL 查询 连续 打卡 信息 ？ 看 ！ 用 Python 一键 导出 微信 阅读 记录 Pandas 进阶 修炼 120 题 推荐 一款 功能强大 的 词云 工具 ， 支持 更改 形状 和 背景色 、 自定义 风格 、 颜色 流动 … 这些 用 Python 写 的 牛 逼 程序 / 脚本 ， 你 玩 过 吗 ？ B 站上 爆红 的 数学 视频 ， 居然 都 是 用 这个 开源 项目 做 的 数据分析 干货 | 留存 率 模型 应该 怎么 搭建 ？ 知网 论文 免费 下载 ， 请 速度 存好 ！ Google 等 厂 宣布 取消 部分 offer 。 做好 异常 数据分析 ， 看 这篇 就 够 了 GBDT 、 XGBoost 、 LightGBM 的 区别 和 联系 三万 字 、 91 道 MySQL 面试题 （ 收藏版 ） 阿里 数据 分析师 ， 非技术 向 面经 。 北大 数学 确实 强 ！ 阿里 数学 竞赛 决赛 ， 入围 人数 加 起来 超过 清华 和 南大 之 和 ； 还有 13 位 中学 选手 ， 最小 14 岁 清洗 数据 ， 我 习惯 用 这 7 步 ！ 5 个 趣味 Python 练手 项目 数据 采集 技术 简介 一份 可以 令 Python 变快 的 工具 清单 想 爬 哪里 点 哪里 ， 这 款 神奇 的 插件 你 值得 拥有 ！ 他 成绩 一般 ， 大二 却 破解 世界 难题 ， 三 院士 致信 中央 ， 22 岁 破格 成 教授 三分钟 带 你 看遍 世界 大学 排行 Tableau 实战 ： 银行信贷 客户 可视化 分析 清华 学生 总结 的 算法 学习 方法 如何 把 pyecharts 的 炫酷 延续 到 PPT 里 ！ ？ Sql 如何 统计 连续 打卡 天数 这 5 种 动态 炫酷 图 ， 也 是 用 Python 画 的 卡内基 梅隆 大学 免费 开放 编程 课程 啦 ！ 一个 靠 爬虫 赚钱 的 思路 划 重点 ！ 你 还 在 困惑 MySQL 中 的 \" 锁 \" 吗 ？ PyCharm2020.1 稳定版 发布 深扒瑞幸 董事长 陆正耀 走过 的 “ 野 路子 ” 不 懂 代码 也 能 爬 取 数据 ！ Feed 流 产品 数据分析 、 评估 及 优化 Hive 使用 必知 必会 系列 所有人 问 俞军 生存 分析 与 用户 行为 如何 联系 起来 HiveSQL50 道 练习题 不 就是 用 Python 做个 动态图 吗 ？ 看招 专访 商汤 科技 联合 创始人 林达华 可怕 ！ 3.83 亿 开房 记录 遭 泄露 ， 这家 酒店 竟然 又 被 爆 泄露 520 万 用户 数据 了 实用 ， 5 个 案例 让 Python 输出 漂亮 的 表格 ！ hive 中 窗口 函数 实现 原理 复盘 程序员 常用 资源 工具 集合 （ 建议 收藏 ） 最近 在 用 的 一款 可视化 工具 用 Python 画 梦想 矩阵 为了 抓取 弹幕 ， 你 需要 知道 的 一些 二进制 数据 常识 腾讯 是 如何 支撑 6W 员工 远程 工作 的 ？ 昨天 网站 都 变成 灰色 了 ， 这 其中 是 怎么 实现 的 ？ 京都大学 天才 数学家 证明 abc 猜想 ， 全球 只有 十几个 数学家 读懂 LeetCode 中 ， Python 一行 代码 能干 啥 ？ 「 2020 」 PDD 数据分析 笔试 题 | 附 解答 BD 云 资源 搜索 神器 ， 自带 6 个 引擎 ， 还 能 查询 提取 码 ！ 从此 ， 再 无 「 Office 」 数据 分析师 生存 手记 让 人 想 骂街 的 Python 炫技 操作 ： 条件 语句 的 七种 写法 常用 统计 检验 的 Python 实现 Excel 的 分列 功能 很 强大 ， SQL 能 实现 吗 ？ 浑水 做 空瑞幸 咖啡 报告 中文翻译 版 Python 正则表达式 ， 这 一篇 就够 了 ！ 工作 多年 为什么 还要 转行 ！ ！ ！ 你 想要 的 Python 面试 都 在 这里 了 【 315 + 道题 】 整理 一套 互联网 行业 的 数据 指标 送给 你 数据模型 告诉 你 ， 现在 可以 放松 了 吗 ？ 如何 用 数据 解决 实际 问题 ？ 不写 XPath ， 照样 轻轻松松 抓取 大部分 博客 全球 疫情 引起 P 站 访问量 激增 数据 可视化 的 基本 流程 总结 我 拿到 了 腾讯 最爱考 的 数据分析 面试题 用 Pyecharts 对 疫情 数据 进行 可视化 分析 微信 「 看一看 」 小 秘密 英 伟达 小姐姐 的 Python 隐藏 技巧 合集 ， 推特 2400 赞 ， 代码 可以 直接 跑 Python 操作 Excel 哪家 强 ？ GitHub 搜索 骚 技巧 ， 太好 用 了 ！ 春晚 冠名 那些 事儿 字节 跳动 的 二号 人物 用 Python 绘制 诱人 的 桑基图 ， 一眼 看透 熬夜 和 狗 粮 的 秘密 ... 文科 清华 第一 ， 理科 北大 第一 ！ 新版 高考 分数 百强 大学排名 发布 ！ 5 个 酷毙 的 Python 神器 工具 小红书 做 直播 的 背后 ， 隐藏 了 什么 秘密 ？ 有关 用户 留存 模型 的 一种 设计 方法 来 ， 推荐 一位 BAT 任职 的 数据 大神 数据 团队 思考 ： 数据 人 的 通用 技能 要求 小 尝试 ： 基于 指标体系 的 数据仓库 搭建 和 数据 可视化 一款 SQL 自动 检查 神器 ！ 实战 | Kaggle 竞赛 ： 华盛顿 特区 首都 自行车 租赁 预测 等一等 ， 你 的 多线程 可别 再 乱 join 了 。 姚班 天才 漆子 超 、 IOI 金牌得主 陈启峰 等 联手 进军 AR 领域 ： 全员 顶尖 科技 公司 技术 背景 ， 打造 “ 5G + AI + AR ” 先锋 商业 分析 3 步 走 | 实例 12 种 高效 Numpy 和 Pandas 函数 为 你 加速 数据分析 用 python 分析 了 5000 部 票房 ， 发现 赚钱 的 电影 都 有 这些 特征 ~ 最新 ！ 这些 高校 已 确定 暑假 时间 ！ 最早 7 月 10 日 … … 阿里 达摩院 数学 竞赛 新一轮 考题 曝光 ， 4 道题 限时 48 小时 ！ 分析 B 站 100 万 + 视频 ， 发现 竟然 有 这么 多 干货 资源 。 10 个 必会 的 PyCharm 技巧 教 你 看 数据 后台 中 的 常用 指标 ， 这些 要 重点 关注 ！ 数据 分析师 刚入 职 第一 月 需要 注意 什么 瀑布 图有 什么 用 ？ 怎么 画 ？ 又 一所 重量级 大学 要来 了 ！ 投资 100 亿 ， 今年 选 校长 美股 跌幅 最大 公司 排行榜 ， 巴菲特 哭 晕 在 厕所 BI 分析师 痛 在 哪里 ？ BI 分析师 为何 痛 ？ BI 分析师 如何 破破局 Pandas4 个 小 trick ， 都 很 实用 ！ 厚颜无耻 ！ 国内 竟 有人 把 JSON 注册 成 自有 商标 ！ 95 后 互联网 实习生 的 2019SQL 语句 + 语法 I 数据分析 面试 必备 ！ 只 需 10 行 代码 ， Python 教 你 自制 屏幕 翻译 工具 ， 高效 办公 17 岁 高中生 独立 开发 全球 最火 疫情 追踪 网站 ！ 他 的 偶像 是 乔布斯 我 私藏 的 算法 刷题 网站 都 在 这里 了 ！ 让 数据分析 更 简单 的 Panda 技巧 ： 万能 转 格式 、 轻松 合并 、 数据压缩 ... 全国 医疗 资源 排名 ， 各省 差距 有 多 大 ？ 数据 分析师 or 算法 工程师 中国 博士 开发 可 交互 全球 疫情 地图 ， GitHub 已有 4500star ！ 这 5 点 让 你 拥有 数据分析 思维 研究生 导师 讨厌 什么样 的 学生 ？ HSQL 常问 的 这 几点 百度 工程师 非法 控制 公司 服务器 “ 挖矿 ” ： 4 个 月 获利 10 万 ， 被判 坐牢 3 年 实至名归 ！ NumPy 官方 早有 中文 教程 ， 还有 防脱发 指南 一个 案例 教会 你 ： 如何 对 产品 做 数据分析 ？ 数据 分析师 必知 的 那些 Hive - SQL 实战 | Kaggle 竞赛 ： 预测 二手车 每年 平均 价值 损失 女性 消费 特征分析 报告 对不起 ， 让 大家 失望 了 数据 和 业务 的 关系 是 什么 ？ 李宏毅 机器 学习 2020 版 正式 开放 上线 | 附 B 站 观看 链接 5 个 热 搜 ， 看 2019 全球 AI 这 一年 清华 特奖 高 天宇 干货 分享 ， 本科 4 篇 顶会 论文 如何 做到 电商 数据分析 流程 | Excel 实操 Python 爬虫 多种 方式 对比 薪资 没 那么 高 ， 延毕率 超 60% ， 现代人 读博 都 图 什么 ？ 生成 词云 的 几种 方式 2020 年 抖音 用户 画像 报告 MIT 教授 创业 公司 将 Facebook 告上 法庭 句句 诛心 的 博士论文 致谢 及 女朋友 回应 的话 利用 Python 实现 数据 偏移 学会 这些 Excel 技巧 日本 神秘 男子 开发 可 自动 去码 AI ， 能 “ 伪造 ” 性器 ， 震动 业界 从 平安 科技 到 商汤 科技 ， 谈谈 我 的 实习 经历 用 Python 可视化 神器 Plotly 动态 演示 全球 疫情 变化趋势 京东 、 淘宝 、 饿 了 么 的 提升 用户 留存 率 技巧 | 推荐 收藏 如何 评价 2020 考研 计算机 硕士 诸多 高校 继续 「 爆炸 」 ？ 钉 钉 火到 日本 ， 日本 学生 哭 着 打 一星 ， 哈哈哈哈 确诊 病例 直逼 5000 ， 意大利人 为什么 还 不 把 疫情 当回事 ？ 实战 | 电信 客户 流失 分析 与 预测 背 KPI ， 想要 实现 有效 增长 ？ 先 来 搞懂 这 3 个 指标 ！ 《 本人 娶 刘亦菲 的 可行性 报告 》 被 省级 期刊 收录 ！ 杂志社 回应 ： 早年 管理 不 规范 新手 必看 ： 数据分析 10 大 方法 ！ 这些 SQL 查询 小 技巧 ， 一般 人 我 不 告诉 他 这些 画 居然 是 用 Excel 画 的 ？ 我用 的 Excel 可能 是 假 的 … … 就 想 写个 爬虫 ， 我 到底 要学 多少 东西 啊 ？ 这份 「 数据 科学 」 资源 | 强烈推荐 张一鸣 ： 做 CEO 要 避免 理性 的 自负 ！ 新 用户 分析 的 一些 注意 点 2020 年 QS 世界 大学排名 发布 ， 清华 表现 亮眼 8 行 Python 代码 搭建 一个 本地 站点 ， 可以 为所欲为 啊 ！ 推荐 13 个 Python 新手 练级 项目 不要 被 这 3 个 数据 “ 假象 ” 迷惑 了 如何 做出 好看 的 可视化 我 在 华为 当 “ 网红 ” ！ 经此 一疫 ， 数说 互联网 公司 格局 发生 的 变化 Python 常见 的 17 个 错误 分析 我 在 滴滴 数据分析 岗 实习 了 8 个 月 6 个接 私活 的 网站 ， 你 有 技术 就 有钱 ！ 哇 ！ 微软 Excel 竟然 还 能 实现 CV 算法 我用 Python 算出 了 同事 的 身份证 号码 ！ 别 一直 用 Select * 了 130 个 相见恨晚 的 超 实用 网站 ， 一次性 分享 出来 教育部 最新 通知 ： 这 类 大学生 可 先 返校 数据分析 常用 的 Excel 函数 合集 （ 上 ） 数据分析 常用 的 Excel 函数 合集 （ 下 ） 太 突然 ！ 北大方正 破产 了 ！ 负债 3029 亿元 ！ Vlookup 进阶 ！ 带 你 又 快又准 的 引用 数据 Python3.9 又 更新 了 ： dict 内置 新 功能 ， 正式版 十月 见面 百度 内部 培训 PPT 流出 ： 数据分析 的 道 与术 如何 看待 清华大学 将 线性代数 教材 改为 英文 教材 ？ 新手 必看 ！ 统计学 知识 大 梳理 年轻人 住房 消费 报告 ： 月入 多少 才能 实现 住房 自由 ？ 还 真 有人 「 删库 跑 路 」 ， 反思 数据安全 2020 无春 招别 再 从 0 构建 数据 指标体系 了 墙裂 推荐 ！ B 站上 的 Python 学习 资源 掌握 SQL 高级 功能 ！ 实战 业务 问题 分析 未来 诺奖 或 出自 他们 ！ 16 位 华人 学者 获 美国 斯隆 研究 奖 当当网 这次 可能 要凉 了 Github 上 的 这 两份 学习 资料 ， 据说 30 天 就 能 学会 一门 编程语言 用 AI 抗 \" 疫 \" | 滴滴 免费 开放 口罩 佩戴 识别 技术 重大突破 ！ 西湖 大学 揭开 新冠 病毒 侵染 人 体细胞 谜团 一次 非常 有意思 的 SQL 优化 经历 爬取 数据 不是 非要 Python 招聘 | 数据分析 方向 Pandas 使用 的 25 个 技巧 清华北大 南 大 全面 “ 线上 开学 ” ， 10 大 直播 神器 齐 亮相 ！ 纯 文本 秒 变 Markdown | 只 需 一行 代码 30 种 SQL 语句 优化 ！ 又 一个 吊打 百度网 盘 的 开源 神器 招聘 | 西湖 大学 深度 学习 实验室 拆解 数据分析 常见 的 业务 指标 多所 高校 给 学生 发 疫情 补助金 ， 研究生 本科 均 有 ， 最高 2000 元 ！ 来 了 ， SQL 在线 模拟器 一个 校招 面试官 的 1 天 RFM 模型 深入 解读 写 好 SQL 很 有 必要 数据 科学 电子书 25 强大 合集 ！ 最近 面 了 十多个 数据 分析师 ！ 医学 权威 期刊 《 柳叶刀 》 最新 文章 ： 北上 广深 等 城市 疫情 潜在 传播 爆发 时间 预测 瑞德 西韦 今起 免费 供 武汉 重症 患者 试用 ， 吉利 德 CEO ： 治病 第一 ， 不想 卷入 专利 纠纷 DAU 数据 异常 分析 思路 中国 知网 道歉 了 ！ 50 题 matplotlib 从 入门 到 精通 数据 告诉 你 ， 网友 们 都 怎么 打发 时间 教育部 官宣 ！ 自主 划线 高校 考研 复试 录取 工作 推迟 举行 明确 数据分析 目标 的 3 个 步骤 最新 疫情 数据 报告 已 到达 你 的 邮箱 ！ 我 为什么 要 去 北京电影学院 进修 ？ 清华大学 网上 课程 面向全国 免费 开放 ！ 无需 登录 、 注册 ！ 在家 上 清华 ！ 浅度 测评 ： requests 、 aiohttp 、 httpx 我 应该 用 哪 一个 ？ 4000 万人 看 武汉 直播 造 医院 ， 还给 挖掘机 挨个 起名 The10AlgorithmsMachineLearningEngineersNeedtoKnow 不写 一条 SQL ？ 照样 分析 数据库 ！ 统计学 常犯 的 18 个 错误 ， 请 务必 跳过 这些 坑 ！ 画像 分析 腾讯 捐 3 亿 、 京东 顺丰 物流 优先 派送 ， 互联网 公司 驰援 武汉 ！ Python 处理 3 万多条 数据 ， 只要 3 秒钟 ？ 在线 电子 烟花 春节 档 ， 全部 撤档 ！ 安利 一位 Python 终身 学习者 。 数据 推测 ： 哪些 城市 新型 肺炎 疫情 更 容易 被 低谷 ？ 互联网 人 不 相信 眼泪 14 天 锁定 新型 肺炎 元凶 背后 ， 是 14 年 的 技术 竞赛 帝都 搬 砖 四年 ， 他 决定 回老家 考 公务员 。 Python2 已 终结 ， 入手 Python3 ， 你 需要 这 30 个 技巧 ！ 数据分析 里 最 基础 的 思维 。 N 种 方式 教你用 Python 读写 Excel 等 数据文件 我 在 上海 实习 的 日子 。 微信 没有 张 总 ！ 私藏 | 免费 电子书 下载 网站 。 哪些 行业 难逃 35 岁 危机 ？ Python 开源 项目 的 正确 打开方式 。 数据分析 最全 的 基础知识 都 在 这 了 ！ 50 道 练习 带 你 玩转 Pandas800 名 科学家 联名 主张 废除 p 值 ！ 斯坦福 教授 ： 没有 p 值 ， 期刊 将 充斥 “ 无可辩驳 的 废话 ” 张一山 倒下 了 ， 惊醒 了 一大批 程序员 如果 你 还 在 犹豫 怎么 学 Python ， 看看 这位 大牛 的 3 个 秘籍 ！ 25 个 常用 Matplotlib 图 的 Python 代码 ， 干货 收藏 ！ 2019 年 ， 中国 顶尖 名校 毕业生 都 去 哪儿 了 ？ 数据分析 方向 选择 上 的 一点点 体会 。 华为 等 公司 年终奖 发了 多少 ？ 我 发现 了 养成 中美网 红 的 「 爆品 公式 」 竞赛 冠军 方案 | 2019CCFBDCI 乘用车 销量 预测 这回 ， B 站 跨 年 晚会 \" 吊打 \" 各 卫视 ！ 怎样 写 好 一个 Python 函数 「 双非 」 研究生 数据分析 春招 心路历程 。 这 10 个 Excel 功能 ， SQL 也 能 实现 啦 ！ 再见 ， 我 亲手 创办 的 公司 ！ 《 给 数据 科学家 的 Python 技能 秘籍 》 ， 87 页 PDF ！ Jupyter 也 能 交互 可视化 ？ 清华 退学 天才 VS 阿里 P10 大牛 ！ 这才 是 程序员 加班 的 真正 原因 ！ 数据 分析师 正在 被 攻击 。 风控 数据 分析师 的 一天 。 10 个 常用 的 数据分析 商业 模型 。 工作 3 年 VS 读研 3 年 。 2020 华为 招聘 的 那位 年薪 百万 的 博士 ！ 淘宝 用户 分析 实操 | SQL 版 Pandas ： Value _ counts 的 5 种 高效 技巧 。 数据分析 的 8 个 状态 “ 穷人 ” 才 是 电商 的 主战场 ？ 真的 值得 考研 吗 ？ 李子 柒 在 外国人 眼中 也 备受 争议 ？ PythonI 超 实用 的 20 段 代码 ！ 安利 一位 有趣 的 数据分析 朋友 ！ 讲真 ， 用 起来 很香 。 超级 菜鸟 如何 入门 数据分析 ？ 你 是 咸鱼 程序 猿 吗 ？ | 不好意思 ， 我 穿 背心 上班 ！ 过去 十年 ， 哪些 数据库 备受 欢迎 ？ 我 的 三年 数据分析 。 一份 好 的 简历 ！ 1 维到 6 维 数据 可视化 ， 你 敢 信 ？ 取消 985 / 211 ， 大 公司 招聘 就 没有 学历 潜规则 了 ？ 你 也 想 去 阿里巴巴 做 数据 分析师 ？ 第一批 90 后 30 岁 倒计时 ...... 介绍 一位 零 基础 转行 数据分析 的 好友 | 畅销书 作家 一份 大学 统计学 教授 推荐 的 统计学 书单 ！ 全部 下载 好 了 ！ 胡言乱语 。 网易 是 世界 最好 的 公司 ！ 5G 牛 在 哪 ？ 看 完 这 张图 你 就 懂 了 ！ 5 个 高效 简洁 的 Numpy 函数 ！ 爬取 Google 的 心酸 之 路 ！ Python 绘图 还 在 用 Matplotlib ？ out 了 ！ 发现 一款 手绘 可视化 神器 ！ 高三 学生 凭 神经网络 论文 获赞 ， 研究 网络 暴力 ！ 字节 跳动 创业史 ！ 世界 各国 GDP 正在 改变 ？ Python 告诉 你 ！ 网易 向前 同事 道歉 ！ 京东 & 尼尔森 联合 出品 ， 2019 用户 生命周期 白皮书 ！ AI 图谱 ， 不 只 发现 「 特朗普 」 的 世界 ！ 推荐 一位 坚持 原创 的 数据分析 朋友 统计学 大盘 点 。 Chrome 最好 用 的 插件 都 在 这里 了 数据 埋点 采集 的 那些 事 。 7 大 Python 特殊 技巧 ！ TensorFlow2.0 中 文书 ， 配套 B 站 完美 视频教程 ！ 北上 广 数据 分析师 需求 真的 那么 香 吗 ？ 数据 告诉 你 ， 有 多少 人 折戟 全球 总决赛 ？ 重磅 官宣 ： GitHubApp 终于 来 了 ！ 70 道 NumPy 测试题 哪种 PythonIDE 最 适合 你 ？ PDF & PPT 下载 | Github9.9 KStar 的 《 神经网络 与 深度 学习 》 爱奇艺 真的 有 1 亿 付费 会员 ？ 扒 了 扒 用户 数据 告诉 你 更 多 真相 强大 的 项目 - 秒 变 Python 脚本 为 ML 工具 聊聊 数据 指标体系 搭建 流程 那些 让 人 爆笑 的 知乎 沙雕 问题 ！ 如何 看待 2020 校招 数据分析 岗位 招聘 情况 ？ 统计学 的 假设检验 我 就是 个 取数 的 怎么 了 ？ 头铁 ！ 腾讯 背后 的 神秘 金主 ， 1000 亿美元 资本 大 收割 Pandas 循环 提速 7 万多倍 ！ Python 数据分析 攻略 如何 将 Numpy 加速 700 倍 ？ 用 CuPy 呀 解 一下 TMD 几道 热门 数据分析 面试题 。 几种 常用 用户 行为 分析模型 简述 ABtest | 数据 分析师 面试 必知 ！ 现在 的 计算机专业 已经 沦为 调包 专业 了 吗 ？ 数据 科学 精简版 PDF ， 助力 复盘 你 的 DS 知识 圈 ！ 15 个边 玩游戏 边学 编程 的 网站 。 数据 化 运营 的 11 个 步骤 。 快速 学习 Python 正则表达式 ， 中文 资源 和 互动学习 网站 ！ 【 手把手 教 你 】 搭建 自己 的 量化 分析 数据库 Pandas0.25 来 了 ， 别错过 这 10 大好 用 的 新 功能 常用 数据分析 指标 和 术语 | DA 面试 必知 ！ 向 Excel 说 再见 ， 神级 编辑器 统一 表格 与 Python 。 字节 跳动 ， 新 的 黑马 帝国 。 8 种 你 可能 正在 写错 的 SQL 用法 使用 Python 分析 14 亿条 数据 统计学 公开课 大盘 点 1900 页 数学 基础 ： 面向 CS 的 线性代数 、 拓扑 、 微积分 和 最优化 JupyterNotebook 界面 也 可以 如此 炫酷 ？ 有人 把 它 玩出 了 新花样 15 分钟 进击 Kaggle 大赛 Top2% 涨粉 百万 后 我 的 生活 有 什么 变化 ？ 程序员 听歌 的 正确 姿势 。 杀手 级 AI 补全 代码 工具 问世 ， 支持 23 种 语言 及 5 种 主流 编辑器 ！ 超全 Python 速查表 登上 GitHub 热榜 ， 标星 4600 + | 资源 老外 神 网站 | 打造 专 属于 自己 的 书籍 屋 ~ 6 月份 火爆 的 Python 项目 ， 附 Github 链接 。 一键 获取 新技能 ， 玩转 NumPy 数据 操作 ！ 8 个 可 免费 下载 论文 的 网站 。 应该 掌握 的 30 个 数据挖掘 重要 知识点 ！ 用 Python 分析 了 下 许嵩 的 歌 ， 受伤 过 无疑 了 ！ 谷歌 出台 网页 爬虫 新 标准 ! 别人 的 研究生 三年 ， 可以 把 他 作为 baseline 了解 一下 ？ 用 Python 做 交互式 图形 的 项目 。 普林斯顿 博士 NumPy 手写 全部 主流 机器 学习 模型 ， 代码 超 3 万行 ！ 对 用户 画像 标签 体系 的 一点 思考 。 Python 机器 学习 五步曲 。 8 个 常用 的 Python 爬虫 技巧 ， 分 分钟 提高效率 ！ ！ 做 了 点 SQL 题 。 数据 团队 思考 ： 数据 驱动 业务 ， 比 技术 更 重要 的 是 思维 的 转变 49 个 Python 学习 资源 | 建议 收藏 Github 获 2 万星 | Python 的 51 个 秘密 曝光 Python 快速 分析 和 预测 股票价格 | 实战 分享 。 10 个 Python 数据分析 小 技巧 | 巨炫 。 关于 数据 、 产品 和 人 。 数据 可视化 图表 ， 你 选 对 了 吗 ？ 2019 数据分析 / 机器 学习 工具 调查 发布 。 GitHub 热门 ： 各大 网站 的 Python 爬虫 登录 汇总 2019 互联网 女皇 报告 | 文末 附 下载 链接 ！ Kaggle 美女 小姐姐 自述 ： 我 是 怎么 成为 竞赛 中 Top0.3% 的 ？ 机器 学习 重磅 资源 文档 | 新手 福音 ！ 2019 数字 中国 指数 发布 ： 100 强 城市 里 ， 你 的 家乡 在 什么 位置 ？ 17 款 可视化 工具 ， 让 你 的 数据 更 美观 ！ 构建 AI 前 的 数据 准备 ， SQL 要 比 Python 强 一边 吃 粽子 ， 一边 思考 流量 数据分析 ！ 图解 SQL 里 的 各种 JOIN 数据分析 必不可少 之 数据仓库 ！ | Github 标星 2w + ， 热榜 第一 ， 如何 用 Python 实现 所有 算法 《 统计 学习 方法 》 ( 李航 ) 读书笔记 你 的 标签 是 什么 ？ | 努力 ？ 真诚 ？ 热爱 ？ 最全 数据 科学 手册 | 附 百度 云 自取 链接 ！ 动态 图表 制作 指南 | 神器 ！ 50 款大 数据分析 神器 ： Excel 之外 。 520 外卖 数据 详解 复杂 的 高校 虐恋 关系 。 30 个 Python 常用 功能 ， 精心 整理 版 数据 科学 领域 的 Python 库 | 附 链接 ！ 从 数学 基础 到 统计 学习 | 重磅 资料 下载 ！ 好文带 你 读懂 机器 学习 。 独角兽 企业 TOP150 | 2019 版 ！ 7 种 主流 数据分析 软件 比较 | 附 经典 教材 推荐 ！ 除 Kaggle 外 ， 还有 哪些 顶级 数据 科学 竞赛 平台 常用 分类 模型 评估 指标 ！ 关于 统计学 中 的 N - 1 . Github 标星 过 万 ， 100 天 Python 学习 资源 ！ | 文中 附 链接 ！ 6 大 机器 学习 的 常用 方法 ！ 数据 图表 的 使用 。 BAT 的 数据分析 岗 求职 经验 分享 。 Github 标星 3K + ， 热榜 第三 ， 一网打尽 数据 科学 速查表 8 个 流行 的 Python 可视化 工具包 ， 你 喜欢 哪个 ？ 你 理解 Python 中多 进程 和 多线程 吗 ？ 数据 可视化 发现 [ 吃 鸡 ] 秘密 183 条 地铁 线路 ， 3034 个 地铁站 ， 发现 中国 地铁 名字 的 秘密 。 Top4 数据 科学 竞赛 解决方案 | 附带 报告 + 方案 + 代码 讲解 + 数据 集鹅厂 面经 分享 | 你 抗 的 住 这样 犀利 的 面试官 ？ 用户 画像 。 “ 数据分析 岗位 ” 招聘 情况 分析 ！ | Execl 版漫威 电影 故事 | 数据 告诉 你 答案 ！ 统计学 VS 机器 学习 深度 学习 框架 | 你 的 选择 是 ？ DS 究竟 是 做 什么 ? | 滴滴 数据 科学部 出品 ！ 在 硅谷 ， 人生 的 可能性 不 只有 996 国内 多所 重点 大学 课程 资源 | 附 下载 链接 ！ 巴黎 不哭 ！ 十亿 数据 精准 扫描 ， 帮 卡西 莫多 重新 找回 他 的 玫瑰花 窗 20 个 Pandas 代码 | 助力 数据 从业人员 新 征程 ！ 可视化 技能 工具 Get ！ 数据 告诉 你 ， 男女有别 Python 定制 菜谱 翻译 | 不到 80 行 代码 ！ 【 漫画 】 ： 人工智能 简史 只 需 0 行 代码 | 文科生 也 能 画词 云图 ！ 四川大学 到底 有 多 漂亮 | 耗时 一年 的 作品 送给 大家 ！ 玩命 进 了 985 ， 终究 还是 逃不过 996 ? 学 Python 不看 文档 ？ | 怕 是 不得 行 ！ 电商 数据分析 的 「 六脉 神剑 」 数据分析 招聘 要求 ： 熟练 SQL ！ | 精简版 复习 大纲 送给 大家 ！ 求职 季 | HR 潜台词 了解 一波 ！ LPL ， 你 更 看好 哪 只 队伍 ？ 想 放弃 的 那个 夜晚 飞机 | 飞机 | Analysis ！ 埃航 失事 ！ 纵观 历史 空难 数据 ！ 搭建 一个 可以 识花 的 机器 学习 APP | 附 视频教程 怎样 租房 最 省钱 ， 数据分析 一下 ！ 数据分析 只 需要 看 懂 一张 图 ， 附 下载 链接 ！ 机器 学习 课程 Top5 资源 ， 吴恩达 和 哥大 等 课程 入选 ！ 世界 上 最 有 价值 的 不是 石油 ， 而是 数据 ！ 一份 大佬 的 机器 学习 笔记 ， 附 下载 链接 ! 学习 观 5.5 ： 怎么 设计 你 自己 的 思维 导 图画 法 ！ 代码 改变 我 的 命 ， 我要 用 代码 改变 100 万 女性 的 命 Github ： 使用 scikit - learn 练手 机器 学习 ！ 腾讯 技术 大佬 教 你 如何 写 简历 。 Pandas 里面 的 加权 平均 ， 我 猜 你 不会 用 ！ PythonVSR , 你 会 选择 谁 呢 ？ Python 数据分析 ， 系统 步骤 介绍 ！ GitHub ： 数据 科学 最全 资源 集合 Python 基础 到 进阶 ， 十个 问题 起飞 。 美国 IT 大牛 为 你 解答 数据 科学 ! 关于 Python 的 内置 对象 ， 你 真的 全部 了解 ？ 从 硬件 架构 到 编程 逻辑 ， Python 入门 打卡 。 “ 数据 管道 ” 公众 号 内容 初步 调整计划 ， 内含 福利 ！ 十万 条 评论 告诉 你 ， 给 《 流浪 地球 》 评 1 星 的 都 是 什么 心态 ？ 你 是 那个 最会 写 情诗 的 Python 猿 吗 ？ 还 不 赶快 用 Python 分析 一下 你 喜欢 的 球员 ？ 数据分析 之 PandasVSSQL ！ 中 英 字幕 | 最棒 的 Python 学习 视频 送 你 这些 祝福 和 干货 比 那 几块钱 的 红包 重要 的 多 ！ 只要 8 个 问题 就 知道 你 Python 的 水平 ！ Python 模拟 社会 财富 分配 。 面试 必备 之 Python 深 、 浅 拷贝 。 Python 表情 包 解释 为什么 吃 多 了 会 拉 shi ！ 都 说 了解 PCA ， 那 你 知道 ICA 吗 ？ 线性 回归 只能 用 sklearn 实现 吗 ？ 你会用 Python 做 数据 预处理 吗 ？ 你 愿意 花 十分钟 系统 了解 数据分析 方法 吗 ？\n"
     ]
    }
   ],
   "source": [
    "# 打开看看\n",
    "with open(\"/Users/autumnhui/Desktop/公众号/标题数据.txt\", \"r\", encoding='utf-8') as f:\n",
    "     text = ' '.join(jieba.cut(f.read(),cut_all=False))\n",
    "     print(text)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/autumnhui/anaconda3/lib/python3.7/site-packages/wordcloud/wordcloud.py:995: UserWarning: mask image should be unsigned byte between 0 and 255. Got a float array\n",
      "  warnings.warn(\"mask image should be unsigned byte between 0\"\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<wordcloud.wordcloud.WordCloud at 0x1207c7780>"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAV0AAADjCAYAAAAmP8cGAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nOx9dXgU1/f+S3CHtlA8wV1KKe4FAhQoXmiBIsU1uLtGgQQN7hYcgoUkEIIGCFHiCXEhrivn98cwszs7MysR2s/3x/s899l7zz33zmyy++6Zc889txgR4Ru+4Ru+4Ru+Doz+7Rv4hm/4hm/4/wnfSPcbvuEbvuEr4hvpfsM3fMM3fEV8I91v+IZv+IaviG+k+w3f8A3f8BXxjXS/4Ru+4Ru+Ikro6CcAeBtRDwDQoqYzypRsiLcR9VClrCkaVLMHAKRlXQdIjlIlG6BMqfbc4FyZH8JifwUANK0bDQCITpqNEsWroXqVzXrf5CyPiTj482meLDI7AgBQp2w9xOREoWaZ2ojLiQEAbPFdDbv2xwXzZCkyUa54eb2uufDdeOz56bygziJdnoqIzGB4pXrgedJjQb82DJ95CO1b1UVkbAqqVCyL5LRsVK1UFuYrR+g9xzd8gyYC0qKRkJuGbtWa/du38g1AMakOvSzd9vUiUMLoO5Qp2RARn1cAAEoU/47rj0mag5jPCxAeNwRBUS0AAGmZV1CyhDEAoG61S5xure8P4IdKS7Veb87byby2JuECwFbfNdjquwaZ8gxUKlEZmfIMbPBZjg0+yyEnOWZ5TAQARGSFwj/dB/7pPojICkOKLFmftyzAwnfjee3kvCS0rNwe4+pNF9W/FDZZVA4ANatXxv0nfhj2a2uYrxwB38AYPPMI0fteHE66YeaIPXrr//+EUe5zAADR2XGi/SmyNADAqbCrRXofJqd2SvYNvi00CACg8/1V3KtYXQqd769CUm46orI/40SIC6/PNayJAXct1M+MMeYVAMhOHI7sxOGi41kddShynwEAiDI42Zy3E7hSmNgfdBEA8PqzT6HOW5gw2L1Q77tdvFcAKFOqDcqUaoumdaPRqLYvACUqlR8No2Ll0LRuNMqV6c7pZmY/gpFRBcn5WbKc93YKAOBk2GFJ3dJGpVG+RAUs8ZyNhNx4Tr69tQ1H1PXK1cfJsMM4G34cZ8OPo0rJqjrfI0uwC9+NR3hWsKgVa/VxDRa+Gy8gYxZVSxkjJN0VIemugr6MrFyd9yCFMwceo//v7XHo2kK99L0+1UGOzBc5Ml+e3NR1EUxdF3HtTT5HMdZ9LU/HPdFL5/z9XcxE6/8W9rXfBACY/26ToO+vl2aY47Eef700w+0Y53zNH/E5BeFJKZL9dl7usPNyF9Q1STg8nZlj9uvDmPnqEGa+OgQAmPnqEF6Y7gAADHbehhemO7i2FK71XI7vS1dEr+ot8H1p4XfLNayJoLyNGSnQ846fiV4mATxZ+ZrhvAIAStk7lP3huui9sDrqyEvfgswYYxQrVoEj5f3tz2BOQ5XxdSDYCrv812t9n7qww+8I5jT6o0BzaENUdhSyFdl4nvQcAOCZ4gnPFE/DJyIibeWrYuabCURENNvjb57cL82b/NK8Bbqx2TG08sNCIiJSKOU0880Ebg72lcXd6Ot0M+qK3vey4O04WvB2HL1McqX4nBha8HYc17fBex6vLYYHUevpQsgErTr5wen9TkREZNpqNRERfU5Mp8+J6ZT6OZPT8YlsTonpxykwdhB9iKhNvlHt6GN0d65/gMtCXl2uVBAR0QrPfQbfTz/nRZJ9B5acIiKiOZ1Wi/aHekcYfD1diMmOl+wb+Ww2r0hhjukummO6i7IyckT7Iz6nSI41PrlDUIiI0nJzBIXF3Ff2RETU6d5KwXxiMjGd/QH3iIjILd6Pk7uENua96oK6HlvPiK7HK+oyMWTF99TrWmu9FpFD5Dm6HnWB5Eo5nQs/RufCj9G1yAui+nOOXac5x67rnDc5N42rK758rgfWmsfJ1OuaGNl0qda5p7yaQpNfTaZ13uuIiMjsvRntD9ovpS7Jq/8p0iUiOhVmT08THuskSHVS9U/zISKiW9FXaeabCfQ88SnNfDOB5r+dSnM9JtPi97OIiGi991JKk6USEdHnz/MoNqYdff7M/BMyM89RZuY5wXWCM/xp4dvxovdg/ZH544v1h2e4U3iGu663WySITt5C0clbONL1i+pIATG/6hynTrrhmbG8vtgE5u82dPoB6jrakpP3c17EK+roX3I89S85nhz23OVkAR4hFOARQqc2XyGnc24CffXX/ECKdK9G3qerkffpbPgNri6GjNQsIiK6dsSFiIjePf1I755+5PrX3nig9fpDbx+nobePk/HJHVydBUvAmshTyIhIRbDs6yT3vURE9DjWi9N9GOPJKznyPOpyfxVdDnenTvdWUp9HG4hISKCaRRNihEtERMoskue4kTxH9b/SRrqZsW0pK+F3nkxK1xC4+obwir5QKpS8tjbS1dbHYvKryTT51WQiIorMiqTNPpulVIuGdD8ERUv2dZhiRXMsLtPETWdojsVlIiL6FJdMn+KSdb4xQ7HBm/lwDnebQ3sDTnHy0IxImvhiGTl8En7BoqMaUVRkHcrNfcXJUlPE/4Cs1SvVJ4aD/j3poH9PSsn9pPXe/5hjL5DtOfaYuo20oKuO72jwZDsaPeswdRtpoXUeQzDAZSGvsGBJ93WSL4VkSP9vWaiT7Zw3VoL+/iXHk/utN1ydiCgjJZMyUjIFpPv6vicREW0Zt5uIiO4cccrXe9Mk3aD0MF47OS9V5xz+b8PojLUjEREd3HiViIgG1lnA9e+856pzDimCbXTaXLKvqKDL0tXs19cyLircPvlEsu+I8ys64vyK3APCJHXUoUmkUsSqrzXMIlOeqUulaEi3wxThF029T6HxK+PuFUruXqG6pjUYG7z30sPYZzTcbY6gb62XjeiY+DhTSv7MfJFycp5+kfXl+lky3R+4nTeOlW/yVn0JE3PiBPN7JJ4gp+itOl0M+pCpl3+UTp2CIl3GWHivk3w5mTohS0Gbe6F/yfH01smLTm9xoLdOXrw+MUuXxfR2y/W55a+O4IQkIiLacOvRv3wnhkEbiUoRrmtYsyK9J5bYZvXdJuibP8hcIOu95VC+rsFeh62rF817ISIaVGe+wdeRQNG6F8TIt8MUK0pJz+YKK9NG1Oqod2SXaBHDBu+9tOjdNorNTqSjIZd1zj311WauEBG9SFQRwkBXFZmu9TpAa70O6HW/hQm5XEEpqVk0ZclJWrDhIg34aw9NMjvx1e+joOhfcjxlpGSS03k3ykjJ5MmJhNbsE4cXNKLaNIPdCwPrLyEiopun3OjmKTdeXV2mDotddyTnUyiUAoNBHceevTHo/v4t5MhVLqJn4b9wdSkS/poWrzoZsgjwjKAAzwia3msrBXhGUEZalmDc2ovibiEWUzaeowcv/AXX0bc9rs0qXjtXLufPf9OB/rp2iSdrvNVa7FYKh3Q1CTMrJ0/sYjxdl7dBkjq6YPf+uVbC/ePO+XzPTUR0Pvw+xWUnkW3ARSJiCHeg6wLa4GX4r2p+oW7pvngr9FVdu/dedNxWd2ciIjI+YMF7LSx4JWynm8Gt6WZwa526bz9/5Iq+6Oi4htfucHeVhKZusKRbWOjbezv17b1dt6KBGPJkHq8QEZ0IvcH1aWLyy7Vc0Rz/h/syrfMSEb2KHMibT51E3cI78Pq84maRR9QISf3CBkt2ebkynnxKl41ERBT3KYknb7nMmvfKouNEK8rMzqWOExm+WWx1jRZbXRNcR6ot1cfWF92/Q+tdnOisF+P+amhnTQ3t+PfAku7fZ3nrUJK8alDI2Otji3ntPJlCp26vnxqK9gd+StB6rZDUz5jbtjPKlyzFFXXYvn+OZt9V0+e2RbHUUxXneieGiSN07LkHjj33YGOrGQCAQU8WYtATYWhWano2rz3G7CgAYNP+uwbfh5sDEzbj4PgOnX6qDwC4du8913/uxiu89hSG4dh7vgEAhM1ixnepXY/rMzloCZODlgCAGffFQ3tYLH6/EYvfb8SnrGievNUPTGxoxVKNJMfaB98CAPxUtQlXACApLwUXP92BTCnDmfAbuPDpNl5+fs8b+0+jPrAPcgIATHLfBwDIVci03quhGNRAezw4T9fUgqs7OTPv3c72oaS+yQFL0dL08G6t19nUag42tZrDtf82GSape7zjFiTmpuB4xy0AgFJGJVHKqCQAIFPOfAZnvdkiOtY1rAl+qe3Ik/UyCYBXHBNXLlemcvKXkX2RlOWE9DxvXlgZOw8AtF5ig9ZLbPAmOBLd1x1A6yU2iE9l4m67rNnPzdV6iY3W96+O8I8xiA5NQPjHGE72S98WGFR7PnbNOyk57kVQBK89aN5BvDzF8M3KKf0wzrS92DCtGFR7PhyjbLm2Y5Qt5DIFbgb440FIIDzjmHv8rkxZfFemLKfXZJsNAtYwoZIn/hyl38W0MbLkT8JXhC7XgpS8KNFthAWvLNp5hfLy5LTO9jYREfWctJt6Ttqt11zvfbUvtElh75vntM3dhYwPWNDzqAiyef2MbF4/4+l0PnWQV8RgF3ic/NOCaNzz2fQpM4o+ZYr7j+MypRc3FEoF9Xc2I7O3eznZhxR/GvlsNsVkx9PZ8Bv0IcWfN+ZBtCc9iPbk2jKlnMzenBSdX9PdIOV+sFh8jhJjmHAu1vqNCIwtdEs4v1C3Qtk6G7mQqxB/atS0gCMyY4iIaNabLZxs6sv1RER09ZOTqMVcECiUjGvwgWeAtI6aK6bVYtFH7QJD3dJ9Hhiu9zh9LF1NX++g2vNJJpPrXFCTcCuwkORVXduA/3WET1sOAMiU5QEALgV4YWyT1rx+46PmnN5Bp5dob1ILHRvWBQC8DomER2gUZv3aCRdffMDojq1R3Ehyh55euHNyLipXLMuT/bHkGFo0rAEAcD0ptI5b3tgIn983CuRtm9eBc+xH9KnRlKe7vf1w/F63HQAgNCORN6Z+hR9g9doNgMrS7VyrLtdvctASd0ZPQkxmutb3EZEVhbmNJuN46AUoSYmrUY4ISA+BXfttAt3q5XpIzmNUzAgPelvzZK0rN0WdcjVRo0w1GJerjdaVmff35Nor9BzREc+XuGD9uQWcfolixWH98ySuPaDUn4LrDCj1J+o2rcXrf5B3jutfaqXaqOIYwlj6dRv9yNWLCud8PZEpk2F62w46dYc+nc9rL/e0xpzG49C4Qj0MfToft3rYSoxkULdcDYHsaEfhRhBN/P1qGgDgZMejOnXVYVSsDFdXKvmnzBh9+R4ZGRXjWbhs3cuqaDbLdG5UT7fSF6hbr2JtKZk2uTqufVBtOhrRpoV+N6WNkfX7Lflv41XwJ2qxXPevb+fxlrySkp5Fk1adktTvNsIwH2qL6xto0auLlJSTQR1ub6MW1zdwfY+iVQHtZ0NeUovrG+h6xDtOtsLDgVpc30ArPBxohYeDQdfNU8h1KxUQ1yKlrWB1DCg/id67qqIj4sITKC9HRgPKT+IKEdGeuUfJ+9lH6l9yPHk/+0jezxhf8ehaM4lIvzheyxmHiYjI252x0Fwuv9D/DRFRWGqyZJGC8f7C9asbCt/UYMm+SS+n0qSXU/M99wPPAGq12JpXpODwwkuyj4go9XMGDTQxIyKisT+t5cr/MRTMp2vuqdoyOdvNAQDQ4Px2AIDJYQtBUYdm+9+Azy7Df3ErVyiLk9snSvbv2TjW4DltfhmL70qXx+vfVqNcCcZHfSjgCT4kR3I6f9bvKBh369MH/NO4O34sUwnVy1Tk5KzvlvXfiqHz6UMwf/kUidlZov0/bbAVbbdYY4MWa/Tzzw2vrbKClfGdoIxtAmWs+J7/tj2b89qntl1FlyGMD27jBeYJ4UfjamjZlRlv1nsjLpjfAABcjjqIWwcfwt5Tv8+UaflJupUkYFypCq/Uq1CZq0shbLb+PuSiQPNKDbT2G2rlqmPxydsCGWvRar6O7NQKSeninzcAqFSVSTo1sctmXHy7hSvrJotv+W+2yQbNNkl/Fu/6fNTvTXyZq5P5AWTk5unU03y1c30huI8OVvsFY3XBYPfC/U/6v0ExaCPhsBnLCjS3GH5pUEdvXeNa36F9i7pYPrWfoO/JmyD07MAsKvUcbQWlkuB2Nf9fMpmSWYQ8E/ISrarU4uSsG6LljY1Y/fY65jfvy3NLKEjJ1VnXgjZ4/D1Ha/+7TfMF7RZrbOC7jfmhUq+Lob+LGR72Vn0Qjaq/BKVtQLFKwkfe+xn8xREiYNpm8R+vS5bMIt3djFM4t5NZDBxQ6k+UKFkcdzOFCZDE0KZHc/xQSzrXxqAmK0TlDZrXwr4bC/Homgf6jfgZMRFJzD0ddsHYGb1Rs973el3/v4jo7BjUKlszX2Ol3AWsvM73lZGZm4fypUuh98ZDkvpLx9jCMdRaIN9yYoaovv8GZh6W8Pw3mKGLxUEkZzGLidajB6OntT3i0zPgv8EMCRmZ6GF1GP4bzHDX5yM23nZCWk4u/DeY8eZi62y7uJERShoZIUcu5+Rnp4zlrqk5BgC+L18OTbYx98UuqOmENjNYHxva+JC5wW1tOgq5QrSwMK0yjYiIEmO072y7c8yFUpPSJfvZeVh0Hm9Jfyw5Rinp/NjAa06eXP9yK2bvt7P7R95CWlEgJpW599/sxBeXChPNV1vzXsfsO0vtN9rqHMdujBj6ZAUnU2YId9j9lzGw8XJeYbF22lGBrKjw0smHMtOzaaCJGVe4+3Oy5EqbW2sFhcUEt0Oi/eo6/6toutGamm5kPpuLLjOL1a227OH673j7S44T6zN/8ITi0zNE9TXrTTdaU3RKGnW1OCjQIdK6mFZ0myMKm3RZMowIiOFk1w48FFyX1dMkT10wrTJNUIgYUtUXqenZRUK2OTIZbXdk9vw7vPWmsYfPU9P1uv3Rgw+fpJ62KrIzd3pCP1vpn7xm2B6G2FusEV6LJWJtGPJERUyKmMZcYdGn3w7RUlToZ7qLYmOlk9KoQ4p02T4iosl9dgpk+uJ5/F6uSOGlkw8F+0ZxZKuZL2DIY/7/QIxIJ7iJx5azuuky5kf8bLh4bPs/2y9QSnq2js1LSspTZHNFE7b+g7SMLToYSrpsnxjefYqmtTcfcP0bbjO7D/vuPqJ1nAgKJ073a2Fg1X8wveNaDKz6DwZW/Ycn3zGN8fvcSz6CgVX/wb3kIwbNfS/5CDdGfezzc0v0nqNShTI6dfbddke7+TZc0QcX33ihdpVKOPXiHUb+1BIXp4/D1t/76xwXmJCEmLR0NNnOXMctNBx5cukYak3cWMD4Pn22qlwK+oBN5VjsS77mJe/tYFSDSQ1YrPIunu7jhysF5d+GmHtBXbZk11g8vvEOxx+vwPNHzCq1Y8AuwRhNHAnogSMBjJ+7c7X56FxtPryTL0nqd+zbAg2a18ISSyb6ophEdI21330AgOcQJja37e11vP62t9cJijosPlojMisKrglPOdmv8/cjJjENJUsWR+UKZbj4+peJp0TuoBhKGpVBqiwGJY2Y78C5sJlcUZJ0nPWsFWcxa8VZZGblosdwC/QYbgHHx96S+tqg7lcV8/UqiURdAQBw0eODZB8ANPuxGrYMVX3nLrz5APeQcHzOzMbya/ck74l1MegFbYzMUnZEZgA9ib9JREQrPEfx6FzKktVVpOZgLc+F/bZxbXVLd/vUQ5SdmZNvS/fNI29688ibTKtM414LE23nWVPbedZkd+sZdVliS23nGRa3GJr4WafO7cg3tNNHtetGplDQpff8FeMRx87y2kvejzXoPo67vaHLr7WvQhMRnQ7jb8tUZt8nRXw/nqworVox6Gvpslbrb81W0m/NVvKs2KEtV9PDq294ukXpapj7myXPraAO1tK18mXSN7LWq6Z7QQzqOpNeTuVZusvsblKHKVZ0/M5LcvMMoagE5m8mkyvoRcJJSpclcIWIyC3entzi7ely+CJyi2eerBJygrjCynSh++/mNGVR0Wxrz4hpTEplGimVTIpHbRnRChMDDwreT8HidOuWa4y65RrDIfIAdra5olNffUHM5LCFoK0PbB4wu4JGzFb96rBW76qjM9CsQwMsGSS0OvJyZShVuqRAHh0Sj1oNquPnX1tyMvW6JtZNYazgwX92weaZx2G2ayzO2T7CiSertd73e1vmF3TfbXetelIw+V584WfEE3MATMLqPR/vwrRmO9yMfINhdTqghJERxrRtxdO/OoUf52rZ9iJX72O6C8vMBmHwwDaS9zG528+i8v2X3DBnrCop/QTjAbz+YmUGoFiZAZrDtKJv/52c5TtqrC2SkzO5dt/+/OTf6haytj5DoFAoBbKb3tvw6JpHvuYDgLOWd/DX0t+49se3YWja3kRS3+626knrgt0jjJsnXMwtCNg43T/rjeNk5nOHiuqWKM48AD+OVe2uG1ZnK7pVY75/r5LOouP3fwEAfiit2nH6QzXx3acAcPsRkxB/SL/W6NCWSWRutuESbDYZHgWkCyQPQrHitYFiFVG+ZjgyY6SjOnY7POHqi0b1FO3TlIvBcebfet+f3tELKz+M1otwCwOs24B9vX7wEQCVO2DVCGtsczBD+Uplee4HABhWYzanp+5+qNWguuA6fq+DJe9hy/F/MLnndnTp3xJVf6iIc7aPYHeLIdT3Pp/QrmVdybEAMHdIV8wd0lXne93o/Ts2trrBexXotLqBmOxkvDDdgdicFBzsOAMx2cmiZ2Ft9P4dPauNRd8f/9J6XW+fSBT/8uUy7d9KUu/2Ux8M6cH8OGkGxxsCTYIEVCRZrBgwafIhnDoxU0C41pZ/ol3berx5Hj9cySNqAJDJFAKZvlB3GQxqskLgQthpdk4vt4I2yPLkOnUCvSLRuHUdnLS6yyPddFku2t5eh78bdtcyWjvUw8UOhdigWcVW6FWtP+7EXOXOFpxafy6n0+kHxuX0KNYKNcu0gILkKF6sBNJksShtpN85g+oY0k+1oakoiFYdpEwGKZNRvHRfAED5mtJHYZ1+5IE6P1SB2eieuP5M5e4Y3q0VnN8z/KAP6SZkZKJaBT3/LtrMYE17+UHseb3cC7raxofMab3bI66wbSJxd4GYjE02rdm32JT/KJualE6mVabR5zjpPKo5WbkCmf+7cG776JEdt3h977wjChy9sMFrGG3wGkbhmb7cq1j/Bq9hBs3JYpfvX1x9yfux9CJRlY7wjqMn6Qubsy5cfcexh7Tv4lOdYxQxjUmZfY9r6+NeEFtc0zZOrI+VSbkXnoWH05CTp+n302d03k9hIDtT9bliP6/aEPCB2RKu7mYY/0SY5a6r41bBYpo+7gUWN6Iu0eVPp4mIKD4nlmwDd9EW3xUCvcJE81XW1GqNDfnHJFDzVdYk/7JY2HyVNWXnybi6ur6+8xYEL/3CSaFQkvN7YWIuXdnmiPIXvWBQnG7/H8eh/4/jdCvqgZM+bwXtTd1+FV0YE5OVr1RWtM/qHt/SqfRdBZ2LbaXLlhLImrarx20fnbZyiKBfW4xu/7X2eLhV/MBKFhtb3UBwxnscC1nJs3SPhaxCRJYvelcfD5f48+hdnX8Gm2+a0G1RtngF3Iyyw8ZWNzjZ8uZnsMVnJNa1vMpzLQCAhY0jLGxUyVCc74vHqwLAoj97cfWVU/R/5KWU+ShWI0C3YgGw0OwMr926lfaYbNeQUFQtWwZpucwZdQoiFC9WsC3h2lCmnOpzxX5etaFxa+H9n+sxi6v/dGc9lES8hTS2zralcDr8LB7FPYZl2+2oWKISqpRiDpbd5LscSlLg+1JM8qgmx6wRMHUxmhyzxqH+wzHlngPCpjPuwUxZHgKTk9CuuuFxvl5bF6K4EfNk5bvdDC1W28B3uxl8t/+75+p1bMY8RfVuK3SNGOlIF8AunhV5nO7jOP42VEMt3f8LCI9Mom4jLCg8MonCI5N06mflCpOZsOc3aULdujXEyv23wMbq9nNeRNlytSeGPJXlrsvSXbXmEqejrqvNmhXrGzqcSVgvZek+Dg6mx8HBhWbpdtoqeT6WwXC+4VFoc4nhVJh+77m+Pf/Jzfiw6vvr/zmB3sVF01m/95z8TWyk6DwZearPgjZr9JqHj6ieWF1f2X8EhWPpbvaZjPUtTwjkurb+ii2eGbL7LCehD4oVKw/6ko6uTPWnkKWuQ8nK/LR2eSkLUaqK9qPJc+J7cHPkxHcHKaJQzKgqSJmMsjVDebouoaHoXZ9JtzjgxAkAwIPJk1Gv9ndwu7oUPUZZ4qkD3+JtN98G723NuDCx97Zm6LLEjltgY2FUjPnVZy3cezFHMbDmNJ61+m9hqdV1WC4RP2JbHexuNM1XZVxLGP2o/xHYL14G83yxy1dehPnOP3D7xmKen/bXATvx44+VOb0BgyzwwJH5HPXtvxP37mjfodenQQPea0GRlp0j2ddiLT+EyHermUDGygGg9zBmK7RMpkCvv3bDZs0oLNl+FW4XVelUe4y3QdkyzCLxg+PzcP4Wk95z/FDdiXb0xcqOzJONib3qO7vU1RFlS5TElm798D4+BqufPsCEFkwyprDUZESkp2JEI36yl0/pqaKpV1usVv0NCtvKNXQ+eWwjlKgRBABQJA1F8e9vCXRI5odiJZsL5AWCNkZmKVumzKNVH8ZQuiz/55vtfOmqV/iYGBS5L7l6dmw75jWuO2VFm3BFG3IS+Mmcs6JNKDuuOxHJubGac/y8fz8tuM3sfmlgxQSMt9orDHBfuoVv+bedZ03zDzI719ov2C0ZMqZpzTpGM8HXn3NV2f5jskMEvt5/C6MWHxXI1K1c9VdNaNscoc2a1RwfGMQ/LNPZxU/UF2zI5ghD0Fxk84gmngfx0w6qj9EcLzZflzGW9PRNEK0wv073nvD/937BsdR9HDPG5aUw1aKSiF7HMX5h4+M7eX2nws7Qdr9ddDVS94m6hY3Om4VPBKxVWpiWrhj6dd1Czo9U13j9Ioh+68v/28hiWzGvMQ2JiEieOIpkMQ1JnjiKVzTRztyOTA+c4IoGCm9HmuZCmjpuBfnRrSA/yX5N/HP/ql7kmxVtQoq8dzyZPEf6cEBFnvAesuO68ub7Mgtlx/fiip0mJhkAACAASURBVCYCEhM5wm1gZcXVWWRm5QoW0vQlXSnkKWRcjtWUvFSa46GKDR33fDqNez6dazvHiZ8xpgu9B+yk3gN2UmpqFnn7iD8eEhF1+kv70Upjn60TlIKgf4k/uPqeOUcEMiKiBd3WipYIjXPk4rNe0YMI/kkI+cHTqBlcnSVJdbJc7cCPU9aHdMXmUUdunoxCIhIF8mwtJ7WwJMu+yhTi7qt/C5rkWBSkK0bAZ44/FZAuEZEy6/oXYh3KkS0ps4gUQsNSFtNE9D0tuip95BMV5TZgdUiRpz7W7Cmft1r75VnX+O0cV8pJHK33vSnlMZQTP4CIVKSrVCSSPJs5HjwvzfAohPuuvuTkxt9myJJs23nW1H7BblX9H6YYgpS8VI6AiYg8k73JM9nb4PvUhDrpFiXiY1IoIS6VDlndI3cXf9q+Qvv5dfqQrnpbvR7gwaQ1TM0Nohx54pei8rdfC1adEaYOh6B2kvfjnSSdf2K1w31qvsaaVl25J6lDlD/SzQ+Mj+8UWLfq7acJz2jSy6k09dUMepqgSnafLYukjLwAQSEiikq/TE6hTbiiLzyTmRO2/dM+8OQpWdn0664jlJiu8yRdSfQzPyIqn3xE+rPFkq7NrjuUnZ1Hf41knlhZspXFNFQRrxpUMvEIhvySbjEirbGXBgVmsr5bTX+tlNwQKOUBMCohni5QHYpsBxQvq+exGQXAicvPMXlMF3QfacmLZNDc8sv6cn+ezsg97M1w7O4rTB0sTOFYFFAolFw8rj7IzZOjdCnG1d95gjVenFks0Ln2+ANG9JXeWMHi5sVXGPZHR8REfkbNOt9p1R1QUntUzAPZBU6vbS/Gf+jp6svVZ5hPQOP2Kl9tWNp1mFTi+6WvBv+EkQ3f6ZTJldkoYVRWtK/FWhuULVUSHuvncW3WL6uppw7Wpyv2qg9MTkjHCe/tORQLntxC2GTpKBSA2SBRpnhpHPqZn47QO2EBr92q2l54xc9FQtYj9Kj3ktdX0oif2jJdnoanCfcwuOZYvPqs2mhwNvwAV9/z03mt9wUA7ebZ4L2dGdrN+7IWYlf0UQ3y2EYoXvUwFMkzON+umI5UnzrUj+35AsnQhwKdHCG1u8xQOQuWlPMUCgzadxIVSpfCjZkTAEAvwgXwVQgXACaP6QJAGDr23tYM9vdfYrppJ3RZYgcA6LrUDpMH/YL5I7uj6xxbuO+fj5+n28DD3ox7LQoMnL4fV/ZMw8Z9dxEZm4ILVlN0jmEJF4CAcH2CY9CyYU29CPeuwxvkZDE5S+f9eQhzV/6GvoOlxz2QXcCAkuM4ct079ygW7JvGk7HwdPUVraujSmnVSRwyZSZKGpXHyIbv4Jd8CM2rztR67zdDu6JM8e8xsuE7yJVZKGFUjuvTlyRZPUOIVRt0EeqCJ8JFIH0Rn3mfL6gGtK6+D9EZV/AxaQNaVWMWp/2T1qHZ9/zF6yMhlljYeAMAoON3qk0EHb/rCZuA9UjIjTXoXgb+3BQ7pwzm2iwZA8C8/ddgN2cEX7/sBNzLZkIH1wwzx7abyw26XrEvGygo7xUo7wWMKjA/QCzZsoSri3z1DhcD9HcvaPPlstDmmzU+ZE7dzkmfsqs+LjGDefx4GhRGix20mvD5RmpUXb300qLFH6uKKqUji66jVPMPmcZkDFOqPeW89YmgrqMsuPLiXSivzY53f8ecMPz8fWiR3q++WPXqNnl9jubafW7vo48p8USkn3uBiMi0tOrkiM1/fL0woeZrrPUqmmNY+Mcw73PsgXPk5BvEtbVh+pYLet2bpk9XE+zJEZNeTqW/X/I3FDmFNqGwlMMUlnKYnkYwax8BSVspKv0yPQ5rzumxboeiQNu5zN9pxbE7PJlmCY3l5yZZP8KS1g43J7M+m8jl8nO9ThUpLLAbIxpvtaafLQVZ/QoWMmYXuAJ1yjaEXeAKzGuc/+2QkempupUADNx3Aj0amsB61GB0b2isVTctuh5QrAwq1Qzg2qXKT0aZypsNujdSpiMv8xhy06106nYfacl7LUgyczF0G23JvZYpXRI5uTJOBgDPrizFTy3q4tkV/nWfXVmKbqMtefIu7ZiQt85tTUSv1cd0l9bNEUWJbIUM5UuUQqWSpQV9tw8/xO3D/NN4h1X5GzmZuTzL96kD8/grZhEXNjQtVn2tWFavaY1qXP2xXzCa1hA/zXq+uQOSUjIBABXKCf82UnCJCkHY5BWcK0LdOtZ1aoRxZWYzT2wmE7LY+Ls1iM74Otv+WZfCwbsvoO7tVHcxmF9xwfLRvQVjq1SvBLOD0xEdHIdaDX/Etj/3YkCpP3ln5xUlmm3fjeJGRnizRPthAerQi3Qjs1U5CuQkQ4liwoQyuhD0zxI0OiJNaOOb8R897/h8RNVyZbFuUB+dc7OECwCVakUgLbqewaSbHtsSJUp3R4XqzjAqIZ24A2BIVtOXW5hQJ091El20+TJ2rx/D6akTsTpYuSYps5g1nznBwWL7H4V523rj9wfHAAB/NmyPgLQE9Lxth4Cx/ERCYgR6M4W573vHnTFwSh+d+oYgIDURTSr/oJfuY79gzDt7k+dCAPik3GKtDQ5MHM6TLbl4VzCXGHHbLh+F/ZeYg0fd3kvnDVCHOsHqckVooq+J6jSYTrVUx/LUqjAaJYqp8gmULi48FLMwULpkCeTK5Jg1uDNPPmTjMdzeOBUAsHx0b5x1eYe/ev/E0zE7yPxY1Gr4IwD+QaUNLa0RvFS4JgEAgYlJaPxDwU8AqV6xPBIypI8mEoU2M5i1k1d4juKK1E6qwsRFjw9kdoV5zIhKSZPUk3IRpEbVlexLi2lLaTFtKTWqLlfXNpcYuo2woM2773BFHWz0wsazD3htbTgT1FcgY90Dmi4DdbcDi7vO+Yto6D1gJ+2xeyCQ9xwidBGJyQob/Uv8IVlYOOy+QwPL/MkbYwgys1U7pabaXqKQVCbC4Vqo7r8h6z7QDAtT72+51kay76eNe3ltMXfEv42U1G1cEUNa+mFKS2cO/UxNE3+vmoiIrFFo92cIGlhYUWZeHjWwsKIGFlZcDEIDCys6/e59oV1HIv/C1wkZKyw02aT7g5gaVZdyM05r7Rcj0szE8ZSZOJ5So+pydVbfECi158HgwsX0RXy2N8kUTAjXhVtvqOsoC8rMyuWR7MJNlwTjxEhYTGYINAn2c0om9RxiLpAPcFlIA1wWklzth3ik2yquPvTJMlrhuY/TG+CysED3lR+4vAsil3eqZCYW5x5z9am2zN/T5Mx2vUj3/xJkcvEfDkMIMiauj/ZryIJ5c0ZE1viqBNzAQhVnPv4C879ut9eOGlhYUfdDzA/HCs9RdCnCTrBmFZ0dWtDLS/JqoZ0cIXYSsKHj9UVadD2UrrgApcpPkNSpVCuC01VHue/Podz35wR1VleqaEJXnhSPPQvh5Cm92qmgXF67WpmWKGHEJEX5YwiTy7bcl0Q83UZbottoS7z+EM65DlbsuibqXtD06RYUvYZaYPiEfVx77bbrXP1+LybfavFiRljmyURqOHTbzvXf7GGOnW3mYHTdvrjfazdMyosnSonPzDTonhrsFh5qKCY/cP0ZfMNi0b1NfU62dLzQXRX61yoMN5HOrWwIWH9q9ysH9dI1ObELS934bodpTlcwzekKGp405/RG3DktGTbW8IQljI8xulcCvXElkElRaOv5HLaez7H/wwuubuv5HABQorjwMw0AdWvHiMo/RdUU1GUyP626JUo0gPLL1v3c3OeoWzuGN/+JwFc4E8RsZU7MyURijvTn4GY0c/LG57xEAIDZ+38kdVks7aFKhblroCrHc/DSxUj6cqglAIRl8t/H3ZjTqFnGhGvvC5BORdljr73O+9CEXqS7zvtPnA4vuqPUtRFuF0v+hzctuh4q1YpA6Yq6iUWKeNm2prx0RTOuiLVZDHWRPvJcHb+2bSR5VE/xYvovkDy7shTPrizFL22MOULdtWJEoZIrAHj5RfHavh9j4HqLH1u9dY0q9nVfkAMAIDD9E74rVQmvP/shMP0TAMDUdRFMXRfpdd2MPNVx2O0OqAjeMzYWqx495Io6xIg3ZNFiKJSqhOSzh3fD7OHduOxW+cWu264ITUjWSzds8gr4JyfAbfQs3cpqmO96k6uXKV4Sr+MiEfz3cm7Oa79NRNjkFbgeIgyRC568FE2rMv7o0Y1bYXRjJj/y/LZdEJmeijltOmN+2y5cAYCYuC5a7kaY1J0lS6UyTev7yM6+wyNWIyMmV0Z84kiB7n4/N0xoxOSN+KFMefxQRjofbZfveyFbkYW13ouwyms+bNppzxx4PzAQszupYuHrVmbu4938ueh2yB6+ixagtz2zuDi70TZOLyE3Cj1+GILzEaoE7nJSfT7jcgJ514lLz9B6H2LQ69O4pdU5BKV/0GtC1uJlS7uTtjr1AfGNE5feeuH5Uv6HV51IdRVWnx2jCXbRjYW+pKsN2y46AQCuPWesDc1EN/mBmKVbUPQx3YVxEw+I9mkSLdvWlM9txMREL/O0g0v8W6z1OoQMOWNBsFawOqQsXb+EBAAMkbJpFwGgbY0aqFq2LKqWLYsd/fhnxYUsEl8g6XHMsDPzdKH75oNYMaQXIpJS0HKFfudgNasqHpWgDba9hgEAojLSsLpDHzgOm4qoDIbght1WHV2/SEc8rvExc87qNT5mjgsBH3gyFjV/fK5lFmlaMDKqxJGqmFVctuxvApmmhQsAgWkJeDVsMVxidG88AIBqpX+Ekpgfgx2ttXMKAJg2bizZ92wms/jmMn0adra5ggolKnMHNFQrXRsVS1bF+Hoqg2Fh0+ui8/TbfxybB/2q1/3zoM33oOmk0Bary8boJudkk/mrJzqT2yx2vqN3whtdEPPHaltkU3/NTPxTVF+bj3eIs7TPdOsFJln4VXfmfDFDcy9o4sCZJ1r7B0xSLc6ssbyhdX9+UYD104ZlxHBFs+9w8A0iIorLET//7dZHZit1RGoKfUqVTjbPIlcul+wLTdZ9xhwL1qerDSHxn2mjwyNy8QvRqtdiOfN//uWCHRERZctV27fD0pIpLE24p3+eyw0yPr6Tljy9w4uvZev1T+zi2if9PMj4+E7KlIn/f/tfZRISLXC5RfWO7uLky586UoPjqs9rUIowp8PXRJY8mW5/Wv2v3kNhIj9JzAttG7A+W331TfHYdDNjUXxcr5+VyLocdMkAQlq0MWfhqvfraqtjqIslbvUumnCxr4E+pnzfYEHidE1dF6FNlUZc+0NKEGflmrouQrsqjdGoYl1MbzAs39coKkyzu4yj88Zo1QlNSEb9alUx58QN7J8sPEppyuErOD5jNFqusIHPrn8nIXeH8/vwZvxcmF47jvsjpnBWbfjU5Vjhdg+7ug8EwFi+4VP5O7YG1Z4Pxyhb7lVKJgb1/gcXXyA1MV1Sd8xc5knFzr8vypWoiqmNHCR1j2y5jn/WMW6swXUW4G7kXq3vX9d9jmq2DFnpOaI67Nj3bh9FRqrQrntTrf0iKNg24ITcaF67Wulaht6AwTCEcEuU7qHfpCSXJFJ9cTPSAzva/QHvFMZ32aqK8Ky0Yw9fY2r/X7g2m2NXHXb+fTGv2WMAQKY8CeVLfI+EnEBUK9MYrxPDMenpCU73bM+p+OvJMfiNYLZb9rlnA+eBqvn8U+PQrPKPXHum+1kc6ip9RlphbIYwdV2EuuWYa1q0ncfJ1MGSr33ITd44MdfD7OVnufoBc9W99/zdAk9uMD/MQyfaITVNtQDCyjX1WPQdaYWmjWogJDwRDYx/4M0LQCfhAsDtd8wii6tfCGwfMKd2zB/AnH3HEu3Pa3U/7hYl3oxnzja7P4LZ5q1OrCzhasqloIvApHDjqCt6DGmHBi2Fp19smHSQI90/6x/Dd6VNtF6/UWvVd+pu5F6D72lQ7fm89l7H5WjcRvuZhq43VCfZBHt/Qk5WHlp2VMXri5Fu61228FoxHy5BoejdqL6gXxLazGBdpjXrHpjq6KBzCzBbjnl5COSaaLLJmtbffkRyhYI8IqIE/erQ5UbQZ1xqVF3KTd8v2a+J9ne1Px79vvk4EfEzjqnjYuhMru6TrIrzvROpSo24/cM9rhAR3f0kHdLU7OrGfPUZCnsLR9q/XXVeXEZeLtU7onqUvRnsR9eCfMSGimLI/pNa+8Mjk6jHMHPB6Rw9hol/zuRyhaC/xzBzrvCuveUYDdlyjIiI2iy0pp6rtZ8CwboPxNpKpe4Qwv86BtaaJyrTLFJj5vTfSe+e+mtOITm3ofdhyJiCXu/8nntku0L39utWO/dS463W9OhjEHWwFHx+CrYN+HzEbnimuKGUUWlsbnVW0O8UodqxZnLYAg/GTEGTqj/w3AliboSwGcu4BTfN/jUDe6O4kRHa15WwqkmGtJiGelmusVG1UKN2tFadUhVm65yHxYXuql/ShW9OYU+HSVxbzKpl8TLhGF4nMck57PyZRBustcu2WQt4VWtT3tj6FcV3SzW/tgkA8P5zJNp9p/2MMF1oepXZxfdx5Hqe3OGEG0ZN7o5/lg6E20MfLBp/ELvPz0JSThZKGBmBwIQquUeHo0Fl8Wxiv+5RbUN1WsgcBx4YnyR5Lz1/V312JsxhxmpasuqIiklG7ZrC4+uf3FiG2cvP8qzctosY99XDTcyCiuduM042/swl3vjzE8ZixZ0HGNKzJRrvtEHgSuZ/y7oSolLTULtyJW4V+8eKFfDz7v3wWMTfFvopfhDqVledSxcYWQuN6/A/kykZx1Glgiop0ckwC/ikvgIAmLe9jFTZZwBA+RIVJXeF1j+zA6ETVuFNQiQAoEO1OlCQEo3OMi6l0AmrOF1Ni1C97Rhli++qV8LZd9u4PtbajAyOx/SeW3hjGrSsg1V/2Inek76QsmilXB3q98vW9bGIB9Wej2FTemL2VtWTzrRuqh2s6SmZUCiUePdU5XI4+oz/nWDxx0+tUdzICKk50qeICKCNkVnKfpv8hFtE2xOwVJL5FzrdNvhUCCJxi/fA05cS2tp3nLH9aTFtKDZKmCNTXUfbXGKy0yFPOSs3ISeN8hRyuv7pDU9H3aqVsnSJiGz9hIHl6pauJvxSmFMTBtwXnl6hac2Odj5Mza5upGMB7lzf4eevKSNXeOqxOtzjQmiss/CECBZ5uTKyWX+VTtupThaud2QXJWVn8dpS+BAVS+k5uRSUwFiuTTcyfxd1a1TTKhWzasVkx84/44pm/6xlqvPB2pnZ0AmnN9RmoTXFpaRL3qs6Gu2wpgGHT1CjHdbUaIfwf5kjk1FIkmoBr7WlLbWx4ufijYjjn14S8Kkmrx0c1epLTUlBUU2JiOhEqDmZ+82n1R9UJzvr2hFqcno7OYb789oJ2RlccYsJFYwRs2T1sR61Wbpi+nJlHu3z70fnQvgJd5QKpV7WqZSO2L0G+0SKFs0xmq9EQktX6rqtdu4luVJJzoGii6xff0daQ3tLjkzvhnzUqW9IFIMUSbIlPbZbvubQ1X86hH/8uJSbQZNsCxrBUFCMPHGWq4uRBovYLOkt1wVFQnqGQOYeIr4r6mugzUJr2ungTHZ3nnFFHeoE22iHNUWmpEqSLivrtOcgERF1tzvMyXrssyeFIpUCPtUULSzk8ngK+FST5HJV5rETocx3YpvPTK59ItScLkeIu0JMTm8nk9PbiYjobUKkoE8TF20fSJKPLhLWlI1vt1qU1NRxPWKpqLFREHfAwt8sRe910RBLrqi3WVyzd+aNyw/p6sC/d3LERf8PEtr8cUWFlOQlWvsfx73mtRe8taRN3vZaxyhJyVkcuvy7RP8+6RKRJGFIQaFUUERmNMVmi6cftDI7SwPrLKCEaCYUSsqi+C+iw5I9PEvX4pr00U9EukmX1SEiSsnOJuegEJp47jI5B4XQx3gmREsb4bIQkxkKllxP+L8WlavjwDrtJ3mwZJOVnkMbJh0U7f+j9UpR36+YL/hcyFSy9etD3sm3Ja+naw6pMer3a4iP9z9LupnZDyk8RnjciaYbQZN0jQ+Z04voCEl9dbkU9MnDoAuZGcck+x7HvSaPz/wFgLDMGDoaclNU/160Z4Hv59H5Z7qVdCAluhnlZTsSKWW6lfMBh093deoMrLNAtP5fRpuF1txrXEo6hccn8+QtLfbyChFDqF1sD3F1dTTaYU17nrqTXKmkJjtt6M+zl8gtNEygq062SWl7KCJuiODeCoN0DQH7Azl/kDkd33GTa0eGMD+0+9dcIpslZwWkc3zHTY7sosMSiEg/omMtXblSeyy5votpm6Yc5vWxPwz/ddLVuSMtJLImypXph3o1Xgn6wmYsk4zLZRfROtXkh2qw+my/1BbgWReYvJ76ho7lF32qd0D7qkw4iG8acwS7cbkamFp/qEA3ITcNpjXb4GfHNQW6pvk/hwAA60ZbQ5Yr5+SmFf7mlfVjbLB+jA2m/bRSMEflmn7ITlmNtPheSI1pjJx0/XZL6YvhtZmFvDHu0guMq/ZPRnZmrmS/FJRKYfh3p4n8bb0+wTGCPk2d/MBztxnc/MLgudsM1StXQL1qzPEzY7oxqUW9l87nFQAIXGkG93kzuLo6AleaoX+TRiherBgW9OyC0NRk/H3ZQVSXRVLqTi4nAcAsqgVG1hLUvxYCPSPQ88sR8MnxaXhykwmfmr11DO6fF+5cGzOnH7dgVdOYv8A7qPZ8blGLrbPtIXW2Y3ZTjVMqCoDn9/m7ZDee1H4iyH8FOqMXGtQRT4ChDkPPRAubsQy/Xjoqqdd0sw0+rjfDk6Aw9GxkovP6hYUWlbTH2lUrXQkA4DFom1Y9MZhW+Bs34g4DAG7EHUZOZi7WnJwLhVwBhVyBMuVL437GSZhW+Jt73XyZ+dKeN78pOmelGqrYQlm2/se1sKvwsrQNUOQ8QJnqz5GXPBNKObNaW6aaC4yKKQEY4XJX8a3CANBzqCq3aZlypXReNzAiAY3rVYORUTFsP/oQq6cxsZs9pu7Fy9P8bb0tGzJbhlmCZgm393RbuNirVq0vXn2N/UedRa/neoeJS+31mzlaNKuFKX91w7J1l0V11o7Jx3bOL5h06QqSs1Xxw9UrVBDoaEYqAECPEZZ4em0pps5fjB6dGuHpyyA8vSbcdPPwE7Pff7qLA+x7j0L/uswW1xuhvvi9fgu97rH+6Z0Incj/8W7QorYgKmBQ/506IwDKVyqrtV8qyqC4Hnm4B9Wej2K6sklJXIcdr29M77YZR9Ghr35/P02sdL+HnV0H6lYUgU7SDYmsiQZ1IkEgFNNQ15UZTBv5Oo2dJjn+43ozeEREaSXc/R/7YE5T5suWmBuEH0o3ktQtCFovZixIL2vtFrf5dVeUK636UM0b1JXXfz+D2T/Pkmpho2RZoWXOYsaVGzg8mtlNdc3bFz9W/EIKBJT+7gynV6aaCwAgO6Y+ihlVRqnvL4meTTeo7kI4fmLOzRrTahUue+/AtY8Wov1i6Dp5N5RKJUe6T48x51K99mHC/2RyBbq2ra+XZfvHyF/wx8hfeLJev5lzZAoAD68thsNND3RsXx+ud5Zz/b1+M9ecDlmKPJQrrvsHRB0965vA6rdBAIBGFtZwnz2D67t+3xPDTdsCAF68DUXn9qofdqv1o/HqXRis1o9Gx59M4Bckfp5Y/7qNkZiTiTAN0hTjJpPTO3Gm3zj4Jcdzsh41TRA6cSVMTu8UzMGGY6m3xfDo8kv0G9NJtM8QPIzegVLFy6HXjwsFfYGezP9f1w60woLbnfdaCfrq4ce4dfwJT2ZychfC/lZtLmp/0RZv/5ivOVQr9D6YUpNwDYE+5KxJzD/Xqy3Q80q+hjRZND6mPUSZ4pWRmBuMH0o3xKWw6ZwOS8TqKFde94GMYmAJV0x+aj5z6sIk24vwsjbDtF9/Qe8Nh3SSM8AQLwuTFnVw6JXhlrMhODz6dzTeybyXwJVmGNGK+XUvWXkTTy87pj6MSrYGAJT58b3kfOqEetl7B6+v9yBzrDmlesy7ct0Ddoec4OKoIkGFQpjFCgB+ackkH+o00Rq2K0Zx1m+nidZ4eXoxlEQw0mEFaRIuAJQqVQIHj7vi4HFXAOAI9+Z51Zel473VqFvue1QuVQ4lihXH4U4zeHN0vLcarwYyaSvlpECJYsW5PpZwASBomcpi9/gQgeGmbREdl4paP1bmES4ArDW/wdUfnF+I5o1q4NSVF7A/64bpf3XHpNGqkxQ6XLblEWZcdgaGmTD/x19v2sNpGPMdYHW61zThXUumVCBMgnhZtOveFINqz8eUVcMwdl5/wdZgKdIVWMu1pUmof61VonJtcbaDas/Hzku6iW1syxUoZqSflTzpF37crdhOukat66L/2E7400z1/1Un3IefggwmXMAg9wJBczuxlFsBAKa0ao8NXX8V9LEEO/cR88gcMn0pGtgLM2exLgZ1tK46AocCBqBGWSb36Q+lmW16YkRbGFj/5ZEzNlmYvm3teb5v6vuK5WAxaTDuvWce0Qe2E24bPLL2Is/KvWRzB2PNhFmZDMUmjweY0vQX1KtQFXY+brgT4YfwjGQYV6gKx0HT4RmtsqDUA/zVUarqoQLfBwAeuQLA6OE/Y+QXfyEA7D3/BH8N7oAXXmHYe/4JFoxnTpAdteQYIuNTYL9+HDq3NsHy3TeRJ1dAoVBy5KuLcAEICBcAz6JV76/85TG524N1eDVwO0Y9seK2d6uTrCbUCVcbfm7D/IhMXnQCD87zLbvd9k7IzpFh1OCfkCdTYLe9E0qVKoE5f/fikS0AHlHueOuMVe374H1CNEzrMU8hwanSm0xY9Lh2ELFZ6bxvsBTRyfLkAiIVy88gBSn3gkyZg0MBg7kNQSyG1TcTjNOcv2033aeBp6dk6e1aSIhO5unueyDcGt+mS2O06SLMVrb9jTPeJ0aj+XfV9bqWANpW2cSW5BxcPMnBRbWCv+25s2j0gvEhc2p+lH+ch+bGic3ujzm52WPVdtjYtHRqlQzbwwAAIABJREFUssmaYtPSKTaNH8B+ImgU5SmyKU+RzclOBTNHtrjF2RmyuiiJ8IRkamVmTa3MrGn9BeFxNq3MrEXrYm11DCg/iYiIxtSbSx/c/Mlq9hFRHVZvcb+tXF0bvJJiSP5lH2qD89to4uNzXJErlXT2repoksTMTOq1X3jdwsaEf5iwux1Wd2iHVdGc6GwIeg7exRW2rY5fHFfR2vcXyOzNSTJ7c5J+cVzF61Nvq2OE2wpy+OTMky18q/sYG/c3wVw9IzOHiIh8A6LpnrNqG3VMXIrOef6XoP6d1RcbfdbRtNd/ExFxryz+eT2ZniWqYuefJ7oLxnumFN6xPAaiYCFjtleeku2Vp6QJljzZWFyxkLGg5CReW6quGTZWGKFi/yWokydb10aosjw5jTGeq1N3zWthaNefTmeowflt5JscR0REeRqpEA2J1/2/gAUrztOCFed5xKtOwJ9zM3ikeijwIRERdXRUxWBLka5tABPravPxPCfTh3QLA2yax4EOJ8j4sDkZHy76c+y+Jq58usTbgadOuv5pflpJd+G7efQq6aUk6T6LZzYM7fIZyBUiIvvAf7Te00GvF0REZHxiJ6+IIP+ka3XemSu6IEa6UkQrNlYdbbfvpT57jlCfPfm3yhJie1B6mqVuxa+EuIhEcrog/DUeVWc2rz3GeC5Xf+fiQwPKT6Jb9k6S8zY4v41uh/tybYVSSc0vSW/H1UTncZbUeZwl7T7lrFOHLZpQaMn4cvSKu+Q4bfMqFMyc/abaio41FOrWrZily2KYi7lAxtafJwRwRb2fzR3sEv+WXOLfkneK9vy7hYFMWR4tc3UkIiLjw+akJCLXTyHk+kl1bYVCSQqFkvp12cLVlV/+rvt336f9u+9Tvy5buDpb/k1smHyoyK+RnBtD5j6DyTXuGFeIiEfA6nVNSBCtOr7+NuD/AmR5vhQf054S4wdSYvwQkskCv+r1U5KEW1+JiMb8vL5Q5m9wfht9SIrm2k0u7uDaZwI9eLqxaen0LFR8260m6Y1edISrq/c9dPenh+7+PALUVi8IUW60U7kktJE9i1ceoXTvkTATm/pvgaf3J64uRrrvP4dxdY+kEApMi+H1a0LK+v03IGbl9uuyRWu9X5ctoiW/yM//+8PzQPrwnPleOl9n8ph8jY027AYNTUtXUyZFunqgYKS7/a4Lb7akjCz6X4FCwSQikctCv+p1j+xktjra77hFAxsuJfsdt8h+hyot4sCG0omDChvLb9/j6mKuhWFzDgmITfMLJCaXslxZ9Jhgw8kMJWHNMTEJuk+UKAh+cVxFE5/Zau3XR2YIQhNm8tqfkqTnS8lirE+FIp2Uyhy95r96kUkadfncc+rXZQsd3PuAJ1cn3/zg0r23kn36/q8H1lnAkeyu+ac4WX6RGFVbtK4JKWv2TOhiIiI6EjSdK5pwiw7j6vlxL2g9OeKRXxD1a94IzdfbwG+zGZqvt0GPxiYAgFpVKuHia2ZHiN9mZvVxr5M7FvzKj09tvp4fdsXqGor5Trdh++sQyf4Nz5ywqZswwF2pTICREf/MqmZXNwv0NOGvkd5Q2xhNXQAI9o3CvGG74RgkDJcb1GgZHIMsMKgRP/pDTLcwIRW5AABdxlvh+fklAID3fpFo3aQWihc3wrGrL2B/+RkA4Pn5JTw9zbHqfd3+ssazs6rwqRPXXmLyCGHI0emb/J2OE4d1FOgAQGxiGmr8UEnPd6obvziuBgC8HrQdvziuhkn5ahhUux0AYGpD5sRg+yDmvLvDgczr/b6r8V3pCryxmmh9cwO8hm0SyP92O4qT3adxbc8IZqdmrSrrEJ2yRaDftt4nXjs1+wEql2VOtM3Ke4dypVQbUw7svo/Zi0wxcaQtTl9Vrfr377pV8v0/dF/L01NvG4KUtGwMmrlf8JkAgKj4VNSuXlnr+PduAWjXXRiZcD/aAr6pzGGkQ+qsQ7Y8DU6xTKhizbItEJPti19rLESbqvzon6ToOvi+VqSgrglz30EYUHMeHsQw6SiXt3AU1RPDs5hwdKtpzLXT83JRsZTgoFnpUBttjMxSdrN11lx5FxFNiy/doYycXGq2TnpBRr2v2TprmnvuBs09d0NSXx39RlrT33OPUViE6jwn44MWZHzQgla4qKy2D/FMusMrH73J+KD0uWVERInxv0n2NXXYpPOeOt8Sn1+fsURE2Vm5ZLlMd2JkdcQlbyQiIv+ImiSTx1NKxjmDxhMR7Xv2gtfWtojGWifD5x0W7es5cTf1nLhb0ooRk6+0Zv7nx6++EPQFf1L9f9mxfafsFcy1//wTMj/6kPafF54X5/rYl9eOjdFvxX/lO9XfssNdlYX5p5sqdebhwEdkKFrdWM+rT3hqT61urKdJT4VrE7os3ZSs+1wJjhtP78Pr8GSayEgXWsBjh9jQ2CE2NLy/BVe/6aBKR5qaonpqtdx2SzCexeUg3Zn7WHQeZ0lPPYL01heDa9xhsvbtT+myBApIe0Ken2+TtW9/svbtT0RE1r79yfOzMHGOvpauOtpvsaX2W1RPOYP3nKDBe06I6ootnqXlij555M+9EJ8m7pNcfOkO2T1+Lkq6iemZXGGx0oEhypYb9FvV7TdSnBikSNfqlRvNfsAn9G5nGeLIzhJPXKOOoiDdgQ2X0vQB5ry2Ifj4qT5X94+oSdGJcyg87neD5mDhF8ckJdFFuKb/7CMiojfeEVofD/Xx6WrKxEhXzIURm8ikl7zv5sv1KxRKioxN5hbWzh5/yiss9PFLznppT3KlgjrcXcWR7Yq3Z8nszUmejIhPuiNcmHvZ//EBWfjc5OkRMQSrXlgZEdFmz1u01fM2zXp+ijcmNGEmRX5eS+/D6/CKJliylcK5E0/JtOsWCgqIEe13fsiEobF/l8vnnvP6L55x1/o3U3xJqnQhsANPLuWCYrHryMN8+/XzQ7qy3LeUGFWbZLlvubo6Okyxor82nCYiomHLtC/QTz91VbJP3b1AVMikqz7DqedvOZJdfEm1yDH/PJ/UWMIdtOc4ERH1NFdZTeok3ebWWsqU5dJgJyva8uEGtbm1ltrcWktERG/e898UEXGWrBjpEhGd9Ob7l1jSVSozSRf0Id2fbuygy6FvBUXb2IENl5L7Q2+urtmnDVEJqkTP/hEFzz7160HpTGv/a1An1+H9mc+FwwXGT3n35ju95nBPCODqnR3XcnUx0u3kuIYnf54QICBodWz7wJCBOumqkzERQ6T+0eq5ZRWcXBMxKeYc6Yr164I66fbrsoWLXujXZQsN7rWDp3v35jsa1k88yihPoT3f8sAmK2hgkxUG358Ybkdu5Qg2II15wmFJNyk3guvTFy+8VZzSYYoVdZhixbXHHGTCxw66vqRJxy7Rb3tP0qRj0idFq1u5RRIytt1nEJ0KXUzbfQbRwcB/SK6U0YmQRURE5BSr+rW4E2XDa+sCS7JL3pynv5/Z0y93VeSlUCjJdPRu0XErXO7RJX8vSs/N1Yt09cHXcC/4eITSX102631PhiJPIaM8hYyr93i0lHIUeVwOWPXyv45Fs07QolknaMbEw7RoFv8xUF/SLSq0vrGBq6uT7j/uwsdVdfcCS6Y5smCeDitXt3Q1iXdEf3M6fsiZjh9yJiKi65G3acIL1Y/2hBfTaKP3NvqYVjTRO+/cmXmzs5iTSTyeBmhT1xtvkxhrM12WIJCxRKwJpTKXK+pISWc2ZnSYYkWTt5yjJ++CxYYXJgpGup9zo2m7zyButqgsJv9sQg7fIpVpvFFtYK1aIqIVb/m/KkPG21LPIeb02zjh0TREjNXb+fRB8k6I48mIiDzjY2juQ90uBXXoQ5xNHTZJFjHU321FD4KDqP5uK6q/20pUh9VTL2LIzGPCW5Y9uEfLHtzjxrHwT2NCoSKzEkhJ/94Jias9RxAR0cvErxPnGeAXzasH+EXT8UPOFOAXTXl5ci0jvw4Sc7QfB6Tp09UkU/W2pntBvS84MJb6d95Mbi5+REQkVyrIyn8P1//3yxk04cU0HhETEYX7az/0lcW1kH5a+9+5B9K0ARYc6f4XkZmdy7NuLc85ExGRa9wF2uQ1lIiIorMCKSJTtUawyWsobfIaRkREu/2nfmkP5c273Wc0OURYkE+KYPNYwUjXJ5UfMhafE0p3onbTi8QrdCRYFcgfmC59rpkh0GbpsuTKLqwREf1yaj+vT7OuC0Vl6T4IZhYTVj5iQnX2vnxOjfba8AhTinSfRYTTs4hwkisUZHbvLpmePskbow7/tE90KOgurfI8rvN9FCUis5j36xLn8K/ehyEwrTiZTCtOztfY0WfO0Yyr1/M19n14HUrPdielMo9HoPFp9qIuBG0+XX2QKc8SkK5p1X94hcUHt4+0sP92nkwb5vzOEPznhHT6nKDfuXPawIZ5FhTpyWZcfcLG05xbgS0KpZz8U19oJV0W7gnXSKlUkFKpINe4C2QfZEbXI3fTvWh72u4zml4lCRb18hcyBibLzf95NLu6WTTsi+3TF5pzPAwJxsxbTCapkIWLsd7ZCZv7MGFtLffthc9cJqXhNX9fbHF1wduZ/BNkG+yxxv0JTEayxt9/jwZ7rHFm5GhMuHoFIQv5+WeLGtt8hmBNy9uSMu9UF7Sq3BsAEJbpC5P/x95XR0eRNW8/SQjutshCggW34LLLomFZYHF2Wdx1cXfXBFiCaxIsSJAgwYIHCCSECHF3d89MfX803dM93T0zEfZ93/P7nnPumSt1b/dMJs9U161bVYGJgGUbIAy7yGJ804+Ctm1AF1EfH8YX9graIVNXc33GlavhxajZIvlypQyhJILvJJU7U46iAGUMSnH+PIMrMxHorvgfQrUfqsDJ3gU9h3VCVFAc6jWWD2jSdL8q7CQ/slhJYc/Xm7CPdMbbgcL3ve6LDV7GeYr6iwp/t1A066Byf7q41x71GtdG+95MwKYadatqXWPBiH9w9PbfmNpvLy44igPH8NHEwgINqlTBb82bY2Xv3pIymZlWqFBhiqg/tyAYZUoJI7UlZFxBzYp/ar1HKURk+YKgRESWL3rUHCEpE5LpAcdYa/xptAlOCXb4kuyIZS2skFmQgqexViirXwFmdWfieewl9P3hL/7U4rmMqeNepHNRf3z+K6GLppualy2Qm/zKiprf3KrxYZ7VdNU1W/5rf6tz1OiQOY29dlXSvBCVJty8eBsWSs2PSD8FSIG14/550ZaIiObcUHl5eIXFkFcYYxfPys2jaf/Y6rxucIbwTLtHynNKz0+mdV9G0vUw1aOt+o63el9I2kNRkUJmfh6tfetAmfl5XMyBx6F+ZHR+D/W6flwga2J9gCtERE/C/Gnrh6fUz+40V4zOM5sfrKb7+rYwp1igexinAY81lk7XsviuULtxj+jE1V1CVYlNlUolRYTEU0EBs1k2fZBuT2E9H6/i6ubet7m+rR5MnAf+d89kG2Or3/vkJU2/dJPSc3R71FfXZm323KVja67QreNP6dZx3V3mPr5kTI66bKTtf/2aGpubc0UdSYlzJGYRRacKzY2+MWMpPGkLuYW3JCLN7mKvvwSSX1icQNP9zpDlVa3peqRgE/Icl0Je4FLIC0F/HwcmRGPrO1sE/TOdrGXXcksKwxSn07gR+hFrP1/H6zhfvI7zRft7G7m6Lmh/b6NOchtd7UVlrHFHyX4A8EmNRQu7bVjhbCfQZK1+mgyfUZuw64uDrDbctnZtND5sgcBvWmnTfw4iaPEyND5sgRvj/gAABCUnAwA+RUUK5i5/5AAA6HXuNBoftsAA6/MAgJ4NGsJnoTgAtDZ8DI+EQqnEidHDAQCvvILQqsEP+NP8MgBgnc1D5OYrMHqv+G+Vo8jU6RoKUgAAxjT4W9BvG9BFUPgwqjRYVKTQ6qIFBhuZoHwpQ7S6KAxu/mbMXEG7aZUa8J20HL6TlsP4wl4MaNAUm7r2RxkDA660+haWzyHtPB4kn0UDk7qc1psSn4bGbRvAIe08htachWvB4nCB1z08cWiY0DE/XxEH17CGiEpl/g9cw5jQjtmZefjsFIDwoHgAwOkHy7B+xjlu3vEddzG0jSoF1LrpZwXrOkQzGUL2fr2JKY364VH0ZwAqVcrRLxB2MycAAM6+c8GbwFDc91L93ziHSh8QGPHjQjgknQYADK7OxOO9uPcuvrz2wYl1V1HKULcQlkHeUdg4i/l+7jg7XaPsxqdP4RYTg7lduyJw2TIELhM/JVSrfkJybp3KzMGPwPiZTLvKIvxYbTPa//hVJCt1KGLCZhvNb0QCxtZ7RH3peUyKqkWv7sDYeg8WvbqDRa/uiORkoYmR5SjcJzVc1Pcs2pu63d9NoRmJ1Or2Zhr9nEkS1+r2Zmp1ezNXV8fnxFBqZ7+BLH2ekqXPUwpOj+c8G9rZbyD3ZPG1+AhOV+1s8jfn/j9UyMpTJQKcb6faZExIy+QSMqZmyofdC0hntMDzgarMylKaLosN7qO5ujZN9230alGRg9H5PfQoVLUz/jjUT9BmMej2Wbrq94Wbw2LoXcaDYL+LOPtvzrdNoD+a6HYE9Zq7h2S/T8wIUigzyCOyB9cX7Mv4z7KuWid2yR9CKAxY7ZbFY29/MtlmQT0tmIAxa+8yduDvvbXq+Sm40K5iPvHxGscjI8RukgWKotuLX38JpON2b2jCZmuNmm6zi5ojtW11fko+yUzizvGPLpGR1W4a/+gSPQjxURctvp+uNqx2uUmtbm+mF9G+NNPJmg56qR5N+MTLtomIPsQHUsd7m6id/QZ6EuVJ293vFJp0vydaHzosaBcoFIJ2n9vMYy2b3lo9zbWxzS7J8m/CIzqGPKJjOFex/c9Vu6wnfH6mu2F/090wFdF8SRKaGJzibwjau7yYAxrqpHvSfz7nvXAhSOUap410/1fR7ehxco2M0i74fwBF8c2ddJ0JiZmeK20GkSLd4kBX0iUiSshmfPvN7jIusPbBqs01I6vdlJabQ0ZWu0VFDf/ORlofhwN4OmgpDPWZxxLWzNCjVmOc6TkZre9sgdfvWwRzWPPCl6HbscPjLiY26gmroDewC3PBqIadMKphZ7StKk6lURjcus88jl22c8aEUV0x8reO+Hn4fry6K504k0VEahps3T3wyN8fLWvXwvzu3dC8JpP91C0hCq4JkTCtqUor5J4YjXY16qJDTflsro0u7kbwROmUJcVB/+fL8KyvhWybTdcDqLLUnvTtgznNX+Kkbx9ULFUbfzW5DiUVQF+v6KmZ4nLCUdGwKsobVJKVYTfNtG2elTTWezDvu3WVdojKVj1+JuYlYGvr/Vj8eSaOd2LMK56pX9CmSnuN60Wnp6N2hQow0C+clW5Qj+14/G6j6JWPIP9YNG72AyevDnV5ALA5+0rUp45JM5hMHXu33sbqzSN0Xl/Tvf63gh974Y17EHq3a8yNdZlugY/npDdAja33IGSyMKXR2+gQ9KprjOyCfBQolahUuozA9KAuj+JspOUVJAro2zm0OblF9NH4q7La5SYNeaoyes94y7g7TX0jdBBPzmV+USx9GK34eYw3peSpzoLHa/Fz1BU/DWMeGWYttdbYJ4VOlsfIOy6OEjOzBMHApzyTjqMw7MF5rp6Uk0UbPjgIxguj6Ta7vk1QZ0v3u9K/0v0cl0rW5XDC52dBOyU3TOd7k4KSlJy2SySv5brFMxuBX5PEBwY+eoTSkj0q7Zofn6G4mOcyhea5TKFLocLTeXM+TaTjAQdFfd8LA7sLD8nMmXiSFkw7TQumneb6Av1UB382rxI+fdhdLbxrJv+aA7tv44rlgYei+9HUVh8rLBqbm9PL4GCubeshbab5T2Hj+0c05zlzAIOvvbJaL5Hq2K8GLZeoqBtpmXnuiEo7itBk5pfwQ2gjdGrgirb1HohkWa12ppM1UvKycb//Iiz/dF0wfr7XFMEmW9XS5QEAC5ozblS//NACVQxV6Z1rlhGnsi4qZiyxQnBYAmYsKVwm3k8L5qFFrVqoXr4cDA1UGwsX+o0XyKXn52KkgxXu/jqV66tWphy2dzUr1PV+f3qaKyxMbgg1kcTcTEFf/+fyLkt8DVe9Paf5S8FYldINCnWv6tjm+Rd2trNDliIdgNgtjO2buUqBLtMt0LKa2C3o2NVXWDl9ANf2D40TjO/+OkRjWxOOmV7AMdMLmNBwGua6TAIAzHOZzI07Jzlx9TL6ZXVeV1ectnyK05ZPBfVhfffghM1sWJ6bCctzzAbR0D67sXDGWQztwyT9dHrli0E9tnPl+KFHstfQBY/fbcTjdxthdWMhFixXbVxKabyaUFj5JhbMk9c0Ozuur35lYeQ4Cz9hpD3XZJdCXaO42NZtEBzCmE3IkMlrYGy9B8bWe+AwbIaWmYWAJkZWKIVxcz+ENqMCRSq9DzEuiR8VrThx7512ISLqMM9C8MpH35UqdyIpTbckoE17TcnNlrX7qoOv0fI1XRt/Z2p2fRt1ur2POt0W3vv0D6qA3OyJNFbTbbrbgjyiY+jfRGaB0M2tsG46A2aoIj45vPkqGr8coop5cMxvWhHv8j8DvpbJtqWgSdPVtr7nlzDy/BKmVUNVvwepe+LfK7+9Y73qaWSwyWq6cVZ8LHfkERuaY3WLwpOYyG+vQkI4Tfe6pyeNvnyZngQIo5Gl5qVSjiKHdn5lrukQLU5HpSsSo1sXeS5fg1WSUOtVD3BTWE23xDbSvgdO3HtHe2yZ5JXLTzE7vlLE2mGeBVf4cAuMpOuvvojkSxpyRCq1cVYY88L7ONUx6wKlgma8vsQVFhPf7RDMYcmWT7ps0spRFy6RJuRHN+GKMs+Dq4vGY7uQMueFaP6t8OMUmx1Gh3y/b+T/3V5DyDPlueBo+v8CRn4LJKNuHpg+/phINtAvhvZsuUVEQqJmy1Xrt5LXkCNaKZOBNtKVI2F1qJPuEzsmdOTIIzbUcp0FtVwnH+9Dyk93rfsqUZ9PmrfsGixSE8YJ2tkZKvOV3YsvdNZeHOmOxaYF1rRpgUopM2uzjit8mLVZR1MHH+B8rlnERiZTbGQyv0uWV4u0YyJOxv798MTVD33bN8Gzz/5IzczBjqmD0XH+QXw+pgrG/fnYUlEfALgGROLco48Y81O7Erufe0G+GNpYnF5dClIbZl1ryz/Cm9zYDr8xqk2KQ17Psb/LCPxYoSoM9PRxpvcETo5FVLYw/bZxhTqide29fGD59j2ezpmmMZB5qToBAICCmKaCtjJ1HfSr7BL0SWHEj4y/7GKTw7IyxcXur0OwthVj3mpd5Re8T7yB7jXG4Nfmwo2Mh76qTQ77S+/w2x/doG9QJLd0SWRHN0W5ugG8diORjEGZfihdXeVzm5GRwz2SsyaCx+82Ijw0QbBBxcqw7ZLeuBrUYzsOHJuMdh2NNJoIdL2u1fPVeO3gybUHjOwEAChfujT09AB9PeHnTgCaWljI+unuais+bde8Ugut91G5hq1g8ywn0xplv51ss33qhqvbJ4vmHFh/Ayt2jsGHlz5w8NgJABjcVuUz3W9oB66enJiBKy+Y/+m0lCxUq8GYP60snyIimPHBXm+uw+k4TYzMUrbRceEJGvV2Yfpanz0sGm9yUvhrx2qsfPNCeFwydZhnQeFxyTT/iPaz/Vm5eZJacXEw85Ed9boiTJo376Ud3Qv5Sqcd3lP7harrtV9oIWgf+vKa7EPEj8rFwXwn+fBzLJrutiBH/5KJqMTXeuWQmpdI9pHfP8U7iyO+zIYXG1ZQKrzg3YvCZKDaXJxO7RYHxyYiyooy5tW1fxa5idNFfXLmBPV+1rxw5/pHblzdNCG3zuBeO7git/4XV2GwKtaHWNu9SV17eNv1RKT6G1jpkNjSJY554vNJttIiycA+ZLBau3BPOd1nSsfynjr4gEijZdsZ6dm0d43wf2z8zzvpls1bumXDPGnYHH1K/2y7LaUVF8+8wP9zbHotfzSw3Tlhjikp0pVCqzOqY60KhVJgLlC312bn5gvmmt94SRnZjK9fSGwSufhHUId5Ftw62sAPnCMro2Nqaz7J6op5Tip7XbMb0v9MzW5sExS5vlfxzBchR5HDtdk+IibE39v4d5SvyKdX8W8pX5FPF0Ou0j9+4sdbFnyiLUj8Q2CCYEwNQg+FdV9GCjwYvjfYcKLqpGt78jkNNllNQT5RIiIebLKaHO+6kuNdVThQyy23BXLqxJybLPYG4ZOwFKRI12KXvaydlA+WdNn+uZNOCeTl8PalyElfco466aqP8yO4laT3ghRyClQBbkLS7OlmYHfBuH+KLb2MnEf3Q4YSEdGtIKHXjS4Yv0Ge3KVIl4U66cqZHUZ131ZypMsSp/qrkoizFfIRkprMFaPj+7k6f+5/E3QhXV3AEn9hwZJubHYaffhmwx3gYCkrr07MK5xvcfVX8W/pSYwjR7RLPq+muZ9U9lWWdImICpS6hT5U125F7VixW9gxf5VNbvSP8zUWdRyYy4vRfO65bAQw1p7LvqYmZXCk6f2ZyXrs4xbGFT6kNN3Ncxj734j2G6VllMyJPXWizY4byPWzhYU66T558IUGdt9GSoWS8vMVkuRLRPTxfQAN77tH0KerpqsOH69IiolKliXdjPQcwdj43ywEGjL/Htj6huVXaMPyKzrfh7pN1zNR/CN/LcBUULj7TDhI+Yosuhfyq6C/sBi/wYombb1If1vIZ4RgYXuWObGYlZFDAV+F4S+f3JFOxqkUc2HRSfeOvzdnEjA6vp8ro25d0kqicmYJ/jps+bfAJ9iA5ERR37+BK4EugsKisKTb2m6nYMwliQngfS6ISUmiUCrI0p85jv2P3zFyjH1JBUoFvYl/Rwm5iZSvFD41SKEopCuHDw5uWmX4pHtsxUUiIrq8jzm6fCNsG+3y+lVUiIgLKcgnS6enXoJSklAn35yEMSIZKU33/0MMx4gZ5By7mSPcoFSVIvElQdos4JV0itwSim4+zMv/7vGWi2demHxP5R6irvFqgjZbCam8AAAgAElEQVSZaQ9uFpq4CwM+qecWFO5DNrLeTUbWu+nMV2dBOyU3W9A2spZ0FykSWNLt/1A+FTgLk2/km5WfRxGZuiVjLCwYgv32uX1L+/09SHes8UIu2pdckcO/6cGgyZyQl7qJKyyKQ7ouoQ24SGXsa0Cc9OfgEal6HPeNGSmYz1+HjwXO57m66QPho7Lpg3WC8m8gu0B1COZZhPzfm4hISSrPgWcRKpfBnCw7ysmyo7TEGaIoY4mpmYKiULNhL+ov1O6JiKZ3LVYsl+KZF4yO7yefRCZARXFIV0rD5ZfPseKz7FKa8INAX1F78DXm8fDvp/c4guXPMzq+XzSv21/mdNvRXdDu9pdwU0+dVPOVQlcRPky2WVBqdjaZbLMQFYevfuTwVXsak2lDD9K0oapf92f3GZe3z+8DBf1S2Os1WLIdmx1I5l+HU2x2IFdYHPLuTzmKDLoZtoIOeffXuH6eIps+JFzkSma+yhYXmuGidf4HBzd6ZPNalkTV+3UJLv5vka4i7ytlRRlTfoZqI1WehJXMmIb8fMLQj7kicnQJbUCxaWeJiLhXIqKY1GMkFcJGnVhdQhtQYPwcrqjDPsKFgjPiuDafXH913MuV3o+2yL6H/3YoFWJ/cXW8sHMmB5vXZFZjFjnYvCYHm9cU6htFy37by5Wjq1WZo1ePMCdFgYIrRERmNWYREVFkUCyNM1nGihbfTzc0ldGmDn5k7IUsoSXnCKNTqROdJhSGuPkeDprMFkREV73dBe3I9FRqfOIAtTrDmEkG2Z4nIoZk334OIiKi0cuYL/YGS2bnmtVi3eKlg5r89eQKV1j8ed6Wi+zERoDiR4I6/96FpDDR7AAtn8Y8Vq+cITyianOc8VN2/xRMe9fdEM3lY6/XYI5o+XW2LYVD3v3pkHd/uhW2RuPaLFg5PsGya7BFDnxN16zSVHJ+pPKhTk1Mp2e2TpSamE6piemczJX94ohcdyJUh0FKgnQfR6zk6u9iD1FMljvFZLlTfLYPRWW60llfcfpxuc1CXTYRQxKFSUkjkncICpGYRNXhF/un1uuwkForPV/1f5uryKfnMdLml4Pe0vGN/1MYZLqJBpluolMHH3GvukLT4ZzNE4QmvSWDd9O6sYcoMihW0D/khzmCwiIpLpUu7LzF9wIpvqbL1lmoE593QpxOrmWFGZeT0Ua6SdlZGtdn+1mttttf5nTi+hsiIkrPlEynzOGXWydkx/48b0sTrZjdzpBEZvNwoCVDop33HZWco+6qo1QoyfPbRtDHN36cpmvWfiOZtd9Igb7SabaJ5DVdIqKvaimXWLBEaR00ndyTNYccfBC5g474DKYHkTvokHd/ehDJEERIhrOIcCX2WDXadFmtlq/dqpsWMnJzKTMvjzLz8uh9eDi9Dw+ny+7iwy+NLu0U9RERfUmI4sbZQiQk3bO+vcg5zpIy8+PJL/U+nfXtRV8SL4rWUidX1muDX6SQmKHayMnNl4914RLagIITlkj2u4Q2EJCue0RHikxhvtOuoY1Ec6JSpG2fJ/wYTyTTB+voU2KQ7L0QEf3aidF4B3XYxBUWy6adoWXTztDsMZZcnY91863J69tmJn8efy1B/zdilQL7/7J63gUaZLqJVs+7QKvnXdB47yzkSDc3hwl9ymqsLMxqzKLf6swVyXu886OEqGRRvxqKr+kWBW3PSSeWJCLa8/4VZeXnyY6zkCJ69rXl6UOS/ZpIt6g2YiPr3TT8gfwfV0kM6Zpss6ADz15zpMu+qsc+/R64GiLUVqVIWL1PVy2VL89/JSLKVWTSIe/+ZB+xmev77B9BRESmc1TvW5eNND7J+roGExHRp2dMUJRGFsw/TY9Tqkd8to8PPqnyyZVfZxGW8ZYeR6zktFm7kEkCzfZO6HTyTrlF6viY+ETy/v9Nd7niICWPMX10fbixRNb7vSfzA8wnT7atXvauvymYowk7VtkKCHhIt600aagFTRpqQYNMN9GkoarvV74yj9xTXtMG9xGSa0mR7rB6Qg8aPvGqj6mPExHFhieSWY1ZgvINJUO6CakZRES0yfoRdZhvQR3m/++l8/5enhKb7z/ltNw3gSGSJDvqtOZjuCUF/zTmuCPf1MC+SpEuEVFOQTpdDGJSt9hHbBIUFoe9B4jmHfMdJjI1EBF1nK16/2xdm6bLlhF154r6iIg6HJN+WlCHJtItCeQUMIQVkK7SsnXVdP/bEJQeR3ZhzmQT9JoC0mO1TyAxsRIRDe+xgxQKhSTp/tppC1f4pCu31iDTTdwTnadbKHm6hdL4ASpf+d+6b+O04UGmm2jhRObpMzTTm2KyQ3R6D39s1O1QRjEgy6uFiqcbmZiK+jWqYNjm84hKTMW8oT0wc3A37cfeZGD6YAOsezJHR9uoxcwd8vwAYrJT4Dpkh+Tc8IQUnH7kjG1/DSrUNV1iotCpjny82/8URr5dgFu9jnKvAPAg+iWG1O0DADgVdA2zG4/DIT8rLDERR+f6X4Dzoy/oaqY5Ru3gytPgkHYew2vPxt24UwCACSZLcdnvoMZ5fDS+vAvDjFrBPpRJ4zLMqBUO9xqBxpd3IWjCOk4GANcuDPKVeTDULy05tt59FHa2s5McY5EW1VCyv0LNazAo3V1yvHK9MEE7K2kqDMuNgzLfHdCrwPWXqbQIaVENUblemGAd9flFwb4Ndli1YxTMOm7Go89buf4lk0/D20MVn5g/pgtG9N6F22/EfwezTpvxQz0mMaa1/VKu75HLVph12iyQfeSyFRs9RmJ721v4x28R/jYRp1gCgB4zDkGhUMLAQB9tGtdB19ZGOH37HTc+a0QPrv3nIFNMH94dVSqKI859/BqGxx98sX7aQHSdaoE2TerCMzAazhe4Y83FT0wZm8xsbnRf8g95hzG/iKcfygeQ0AUd76+n4c8tyEMtO4R7srSta7+d0C6569ozrp6rENpibcMukG2YbrYeOdiF/DsRrC4E29GIN/O5VyKih9GqACJsHxHRQd/ivaeSgGOEeDc8IkOcAkcK9iHDBIVFSWaTUDcjlLSmqwmF1XBTIxuptRtIFk3Iy7rNyRTkfuDq7O69tvmFwYoZ50R2WSKizIwcWjX7fKHW+vxBsx15kOkmUigUpOBlbBlkuonMOm8mIqLFU07JzJTHo/c+1GWKOeXmF5Crj3RWmi5TzKnLFHPqNtWCa0thx7nHmi71n7HptrBTuZv0fnBANP402pOIVDupsdmp3FhGfg7lKVS+tT+vYUI0tlvEfBABUcLg1of9dnOFxcVQVVBopUJJg5uupPtXdAsXycI6YAgREZ327V2oeXwkpGTQljMO1HmaObn4hNPSQ2IbIUusI97Mp7NB17nC9smV/wQcI+ZwJHnVvzO9j9kiS5pX/TtrJdTgNHt6FaU96DoR0fuEV7TQZYKoX72PbR/x28XN80uTPyAx6MVi+tNpE7km+dKgF4tp2efDNN1ZRdKXQzX+gxERkZnheMrLyaO8bxszA/TEBybUkRrZiNJjupJSwbjfZaesFRFupoS/L0ukUuTMJ1mlIk40t7iIClclNigoUFBctNBPnN38lZujjvwiHFQIzYwo9BwW9q89Be0uU8wpJV3ohbX7grTNPjw2mXK+hSJgSXfyFtVGK4+gS450/+inctdxSQiTLCz4pJuer9kroCQQmsn8cmYWMLbn1DzVlyHAS/VH2jD9DI3qsJE2TNctMMtZvz7Fuq+lh27RsBWnqdccVbAfV1/V/fAJlF8PyRQeQfxPgz0jz9d08xXMpqUcsd4LGamVdJWkoKv+nSk4zZ6C04QeFPy07B4prpSvzCPvVMYlcKHLBLoZbs0VPha6TKA38U850uWTcnCGv+ge9nrbkHsKE9t1savYHzo2myENlpylYGY4ngbojeHIVlfSle5niDMzYbykppoa2YDSolpQamQDysu8wr1mxJlRamQDUhREUWpUE0qLNqXUyEaUFq06QjviQdHtmTcC3OlGgDsZWe+mj7G65y90j1tBz0JM6XFQC3KJnkUFarG6P8fMIyKi56E9KCNPswY8zkk6RbuukNJck9NU92N+6blGWRYs6XaZYk7Xnn6mLlPMKSuHcw4oHumab2LcXAoKFDRzxGHOxUITWMJtYbeFhj09JurXhOTcKLINWSnouxqyQkZadzg98aSP3wKCLBp5WIu0Cp7J10V9p317S5aigk+6RESbPeU9P/hyhUGzs+ZkdGofV6TAH5eT4ZNuSm4gpeQG0lX/zlxdHXmKDJ3v8WZgX60yyz4LzT47vYTxV9d8mUMLXSZwhUisCfPBBn6f+mE7nQ2yp/3el2jQi8U06MViIiI64HOJxjttoCWujLdMdoF0nA0zw/GCts3W6zSzjWYNXhvpKguYDaWctP2S41LaLdcX1Zjys59RRpzQl7k4pMs/LNTysvjpVQ7BKWfoaXBbrv0y9CfeqJK+xDKfdXa+9mSfyu+e37hEUHxNd6qW01Dq4JPu1+RoUb86jvmNp2N+42n/10FcnY+rISsoR5FBOWr/wJe+qnbEjU7uE7yWFHQl04WP7WnhY3s68dmZnCJCyeiY7p4SfNLNLsil04HC6EbBGRGCogvp+ibFC8jzrMcnSTlW5muC5t1rhTJXUJS8oDlS2uzrqGWivqz8OEFRhybSXegygWzDzon61bXc4wH76VrYBVroMoE+Jr4lJSk1ku5/EppINydtH1eXGlcWxHB1lXlBwWi6+QGMjCKFctItKSdN5U2iTrqFOcrOP/q+1Vn6EfzfgkLD6dD/ApSM90Jh0PLWVniP3Cz7qg6PFAc8ihbuUK9oyQR6PuBtJtkPAMan9iNk9koYn2JyK7H1FV1+wr1AHwxt0gILO3Yv6tvAGb+fMNPkNfdaWASnJKNR1WoaZbxS/dG6SjMAwKOYNzCr01vruq/iP+LnWl0KdS/Gp4X5p0JmMdmQ8xQKlP6W/01dhi/33wglKaCvZ6BdsBjosPAg3CyXcnU+2P7/JYx8aI1bv6oCehvb7BGMh0xiAsIn5mShRtnyovnGNntgoKcHBREny2KgwXg8UdgK2nzwxwAgLTEdo2vPFMlomzfxw0Jc7GbJtYdVnowy5UrjRuwZ2ftQX+M7Q9Z7oei5tgsJKaJVx4qWj3DA24x75fezUCdgAOh95ZSg3a1uAyzs2L1YZHvWrw8qGtbhiJYl3slNH6K0vvaEmcbHDyBk3gqthBsb0wmt63xAXFw/1K7tKCDchPhhXL1mLXuuHhVZDz/XjwIAxES3gVKZxI0ZGDTAD3U+SF5LjjxNzllgf5/BGGvSlpPZ9s4Rm3r00/IugYJ8XyTE9YWBQX3UqsMkomy3VDf3LveDxSOsQzdfYcnon1GgUKJUEbJCsPcpdR/hCSkAgGFbzgNQEa+b5VJkZOei98pjAnl2PDMnDxXKlhb0qcuw6Lb0CD4cXMS1p0w4juTkTFSrVgFWl+cBAIaa7ce9RyX7o8cnXAAi4mQhRbia5OXAkp06kbK4nXQeFaqUF8nIzRv/bi6G1BV+N+3TrEVyPh8C0KJbUxTkKySvK3c/cvdfUih2/pKWt7ZK1gGgzW3ds4W2rTpY0OYTLR+zmgqz+YbMXomI9FSEzF6JkNnMl9N22B/odvE4AMAnKV7ne+BjhslLjG8k/LBnmrzWiXABIGTeClFfVGQ9REUKfYRr1XaEUpkluUbNWvZcYVFQECh4rVPXE/W+EXC9+lECwjU5ZyHQXPl1sxvnVfc6ayXGmrSF+ac3svLqiFF/H3XEmX+1od3Sg1zRFb0XW6L3YkbDsX7iAtO5B5GTly8pG5+aUeh7YtGgZlU0qFlV1G+66BAqlisj6mfJdOL+K6KxDgsPchoy+2r76gty8wsAAOZ2rwAAVpfn4frtJbC6PA9ZWXkAgEaNayPAP7bI7+Pfwop+W7Gi31ZR/XvAtscJTDEeh70+jD97cmwqkmNTcS3qlKD+g3EtJMem4teyE7gxPp4obLUWTWhmc6BI919sTZevwcrV5eT5eBNvJar3rjWF03wBCOp8sGTLx4eJjKbQonotAEDPceYAgLe2yxEek4yGdavh/nNP/Na3jeT9sGYLbWh2xgL+M5fpLM8SJIuY6JaoVv2UjLQQfMKOi/1Jcj0+/KaL80+pE+mH6HB0q8vkbVveuTeehQVyY5rMCnW+XbeUYROurg5NmuzGK49xx9mLa7dbelAnzffN4YXwDI7h2q4npOdo0mJ1xd7rz7k6S6quR5Zgo80juFkuFZgaOi46iM9HluLWRvHBFTnTBAvDUird58hBB6xYMxTlyzPa8pHj/xsHYQ44Mv/XAw3Gc3VdMaL6NMl+OU105scVONPlAFyTPQAA4+rNxqbr4u86i03Xl8HzrQ8A4KdRwsNcAw3G42bcGVSuUUnjPfa9dRrPR87i2l2uWSJfKa1Ba4Umg6+uFmOj83uoz82TgqI+zq8bnd9D252fqS9DLm+EoQ+vnXxO104+J4drziJZr0jhpk/vnfKBaFgs2MJkaXjvFkxERJ5+qp1S36R4rn7H/6tgM87U2pKWP2dSQRud3Ef9bM9wdf6rNkRG1OVe2ToRUVRkM0lZ9aK+jtTamsD3Rhh0XbwhxR/f6vRM1Kcr2i6xoLZLdDsifuD2S53l1QNPewQxG7QpGdkiWV3W1EVmxPYL1H6BBbVfwMixdX7fv40L/gPpU/xpSs+TD36kC7pMNhe8xn07AHX4ivRBF8trr7WuOUB/HA3QHydoS9U1zdfUJiKyj3xMafkZGmUKgwH642jlAOksGPy1k3JUbmULXtwmowt7pKawkOVVreaF476DkZwXzhA0lLgVthQEpUjuVL9RXHkxajbXP/PZTYRMXQ3jC0yGz5CpqxEydTU2dBHaZMZ32wbTXs0EfWbjusLLNQRmY8UbRpNPXQMA9N55AgDwet0cbW+FQ7f2xgCA0oaqDRiTajUBANMdbmJ405YC+WltOuGGnyekoL6Rp45PPuFQKglKJWHM1tW49dId7/0dBBpq3Xp+onn16keJCn9MSl7y/tQ029C0FISmpSBP4lea1WyNT+/n7Lly2m5S/AgAKjODurlBCr5pH+Cb9gHZinSub/nvP3N1bWYGw1LCDbM2jZjMx1UqiI9plhRubZjC2XIBcHV+37+NfGU2AtOfoaJhHZzx+1lW7qVroOzYkw++AICgSCabdNcpFvhtsfCJy803slD3dXXvbWZthS0mGM3XKn9hE7Nhxi8AZNsshtYbiJkfl2P8OyaEgGn/tgCAEK8IyTLQYDx8PshnsX6isMVnR+n/bz6qlSnH1S37/I6QKau1zpGEJkYmIjri3ZcKlIxf7gnfIWTp3Z9O+A4RUHpImnyYs/EPL9P4h5fJ+Ju2y2q6rPbr/EKcz/7qCSaG7OBmq0RjLBLS5QNEFwcmZ+S1FzmXq2Of5Y9DD195hvzC4mj5P7dpzLrz1G1G4VzvvjdeRPuSdcA7svBi3H+islJowfsrdCnwA7W8tZla3trMydoGf6RcBXMaJzHud4qO+JGiIxp8KypNm69B7vQcTTs9R2u8hzH7bAqlHeuC4mi6/mqnHQuD+DTdfZLlEJuSrnGc7xPuGCXv985qsLqM8+uspqs+X5umy9dy2ddJTRcJxjXNHV17hqAvNjRecs7sj4wP/zK3rTrfT2Egp523vLWZfnqosxuoLK9qtekubOEIS59+mNLkKuaY3EdUlgfqlW8rkPnr0VW8GTMXxhf2ImSqkP2vDv5T0K8+3qWPOJ/9+Dl9AQAP/fbK3leNitI7q8WF7wyV9jL+3FXYTv8DAGAX1AuVyuUAcMGn+O0orV8JiTkeSMsPxm9NV+JmUA+MbvxOtF65MobYceEJMrJzcXMXY7ta9s9tWPw9Quu99L50Gm/+mgXjEwdwadg4rr9XfemAKUVBUEYCAODnH5injLrlqsCyG/OeRxp1QDkDxrbY6vYWbOkwVDC3Tv1wxETWQ536UbKa7rrWNwTt04HLMKuJhaDvt04t4Bul2vBkNd46VSvh8WahO5E6+LZbKU1ZvU/OxjtyrzUCYxIlx7TZhTVp6ON6tsOGsf01zmPXl1tH/fozTV7DJeEMAELfurrZT4kAPZ4TU9cpFoJXtu5sJbaNyvXzwbpksRopuwk1efMYrfP48nzUblgTTxS2GF5lCrIzcjiZk533AQDM22/SuLbcukW5FxavBos3yAsLnbwXFrZwRCXD2gAgIlx1sGYE9vV/Cc23H0Tz7aovvltkNABASfkY1fgNAMAv5SI619qIdjWWoIJhffxu7IhSeuUkCRcArm6fDKuNEzjCBaCRcI1PHEDTU8w/wpu/VIb7XvUb4i/7a9j61lHn9xOUzpCIQ4QPHCJ8JGWmNe2JaU17YtJrxpth4+e76OtgIZL7OmILxhl35trVa91GQuzPHOHKbaapQ51wAcDCXuj/PLZnOwBATEq6SJaPk4+lXeMKi3ZLD3KEe3T2CIzp0VY0rmkuH//MGI5JfUy59jUnd528M1iZ/m2bYmq/zpJjfHSqOROaAlkBwOkNf+CLfxS++Eeh21Th586S6PMTC+FstQwdmtcXEauz1TJM3GiDl6cWCchZV7g998SAiWLzh5xbmJyJgU+4ALDyy3Zs9jyAz8meIllN6ww0GI/Lu8QR4NgxbR4LX0dskeyPynLCw/BJuBOqXZECdPBe8ItnbKUmtU7qtCBrv2U1WpZ8u9ha4u7QKahbQbxL+CBY2oOAjyGNVDaXB8FtuLb6XL6cujx/nhR8Ny6VbOvrGXJ9JlUnAgDylRmoaNgAb6KXAACC0m6jd91DgvnuKeEIyUhAr1rNUKNMRUxxOo2uNRpjQXNpzQcAQuaugPEJsStK01MWCJkr/yu7yeUh/mxiiuTcLPT8oREAYNDD4/g6Zi2OfmVIbfCP4qcKFuwXanvH4Vwfq+XyUVpf9ZWpUZvxJKlTPwp5uW9Quoz2Qx2aULUCYzPbOLY/rju5a5U/+tAJAKD/TYXja4SF9V7gy/3UshE2jRuAe5+8se6Sg+wcPhny5//SpglWjugjkDFdcRiuBxbLrqOvpwc3iyVc37JhPwnmq3t3uCScweckK40Hdto3k376GLniLOz2zwAAVChXmtNk+Rrtb4tP4f7h2fALi0e5MoZwtlqGo9ffyF5LiqxWDtius6Yp5ZMr56e7v/1Grddm52m6vi6abZMOxgAA18QwmNZQPWHmKBLhlsj4anevvRH1yvfE5QDdwtxq1XTTst+gnGEzEKTdI9a/e4zXY+ZybZZw+RtnAPBx/EL0uH5Mco0hjTxlCzsOAAXKDI5k+WTLyjatKt5M00a02sA/kje2iQtXN9SviFbVZqF33UNcUUd2QR72eN1DjTKMb2+lUmVRr7zY91MdIXNXICMvT9AXMHuZJBmz2NbpVyTmZuJmiIqsHv86D5/iw1BKXx/2g2bJzi0q9PRUGwtFJVw+cb3aMVfjuBz4ZFUU3Fkr7ZY1tLNqQ1X9PjJycrm6JmJnxwoU4s1nPuTew5bxA2XndKw+BWf8ftK4Lgu+FnvrwAzO1HD9qRs3xpe5f3i2oK/rFAssGFu8H9Xiwi3xBFe38VcdfLoZPBw2/t0RnvmqUOtp02wHGozHCReGx3xSY9D3kQW63NsNAChrUAPda29EgTIHAFCgzIZRRfm/FR9aNd0yhsaITb8AQ/1qqFN5BhTKdMRlXEXdysw/8c4eqiDifHutVF3dnltYlNKvKKvhRmfKayRSYOdrI2RND3A5ufn46h0F0w5GAIBfft3Hjb14uAqNKtbCgDqtEZeThtplK8Oy6yR0uL8RIxt00np/FUurtMxNvb55EsxdAcfQIPQzaiyST8nLRptqdfE8yh8pedmoWpohxMkvLwEAml7bgYBxGzj5J8Etv13HBD3q38GT4JYY2MibGw9PTEGDGswPRLsVB+F+oPA79YU59HB56QRBW85GW5S1taFR7epovfYg+rdqgka1q2OpmYpc6larhOhksZmj51ppBUIT+m85jWdbxD9+mkh7VPc22GL7RNCXr8zk6tOaPePqeUoFWl7fg8Dx69HEdie2mJphQtNOGP30PLrVaojzfs5wHrEUFUqVRmZBnqyd9u8/xCYBbTZddfzRYC4uBlkK+vT09WR9b++deqq1r0ONufBIuoC21acCYIj3h3KmyFUkAwC+JJ5Cgwo/c9c442FeqHsGgN8qTERejviwzU73h5jcpDvS8rMF/b3r7AQAlNIvh151pBMuqEMr6bate1/QNtCvxBFuSeJBcBt0qMWcAXeLX6ORDHXVXqXMFtrI9tTRp5i9YIDGdVlyffFwFVLSVH+EFw9X4Zdf9+HFw1UAgNplK2Nb+1GCuW6/6X5Kj8X0tioboRThAsBJbycMadAKGzua4VaIO0Yat4Nt0GcAEJAti4GNvPEkuCV61L+j9fpShBsTWQ+VqmxCduYVFBT4A4DOdl3R+lpMANYvXDD5F+kfquIeJWbRo2lD/DNpOA4+Ej5Cn1swFr/uOCc7T5frd2hUD27BUcU6IceHoX4FNK08GOn5UTDQU/04z3lzHT/XbQIA2NiR0boM9PRwe+B0KEiJPKUCq53vYXX7fmhcqYbGa/x24AJWDWVMJH1aMOaqqOQ0brxetcqS81jN8Wr4CdHY4/yrGucAwNDZA2T7AKCUPuMeWNGwPgqUWRj0I/PjZ+PfHcm5AaK5hcX9zIuS/V4jxBuW+co0GOozn8PbKOZpqVc9K5GcOop0Ii0jL0+giekC849vsLyL5seTehWZ3XG3ePmz3QEp0rbluhUGIz3Pn2vz7bh8aCPr50+8ONJ1eu2HhLg0DB8t3NhgSZUlWD7R/qfQPK4WAuPi0XZgXYw0bofM7DysbT8Aa9sz72XPicdYM1f31EaslqsNLOFKobiEuGX8QGyxfYIDd17Jkm5J4cyM0QAg0HIBoK4MuUghLZuxcVcuZ4a8glAAQOlSRrD+e7xWzV7lTi4AACAASURBVDwnn/HVLmtoAo9wVeqqtg0iJOWrlP4RVUoLU1wFpyUiPDOFa6fm5aCJ7U5MNemKjR0HYrMpE7dEoTnIFQDg/oqpAACbt5+5vpqVKkChFJpJPgVHIjQhGaO7tMHNj8z/1uguzP/csafvAQCGBvqY1ber1mvqgpZVv3nWGN8U9E9q9p6r7zjhgOj4NBzdOA4zNlzCyhkDYFjKAE0a1NS49qBFx/H4yDzYPXfHqL7ttN6LQ0hvDGvsDiXlIinnM4wr/4GwdDs0rDRK4zytNt3mZw4JCgCNhGt88oDglcUR1/dS4oXCx5h5CE1jfi35ZJqRJ3Z8Lqod98pt1WZHz59MMGxUZ1lZlmgLQ7i56dK5m1jw81rJ5dLiY+1+RlPdf+oJfvulNddfoZzwb6ROuD6JO9Cg8l9a19eEChXnok79KNSpH4VaPzgVay0pjOouvcFakqYFFq3XHkTrtQfxPrDoucQyc98hM5fxYknMOI/EjPNaZqiQmH4aiemnAQAt6n2ESd1XsoQrhxdDFyBw/HoAwFSTrljYujcCx6/ntF4WBnqavR5ar2E+3wVWd7DH/gUAYMcdR+yxf4FypQ1RrrRqY7lzo/rYdJMxf2y6+YSrA8D5V59w/tUnnHrurPXezcr+JVnn90kVKdx/6YWgCMYVMjwmBasP3EH92lVEckG+MQjyjcGV08x7fHxkHjfWdaoFxq29oPW+E3M+wSlqOoY1dkfbmrrl29NKur4zlwgKi/lP7up0ARYhc7T7tz0IbqPRk6FLnePo35A5D8/fZHsVOQIPgtvApNoi2blFhZbvpwBx8ekiAs5NPwilIpxrs4kD1aGJYHUh3/tnVSeAxi86Kxh7+PKrSL5FjQ2oXZ7Rgl1ipgnsuQDQdrlmYqtanXniSEleAAAwKGWs9R6LAymiLSnTAgDUr1YZpsb1i7VGQvoZ1K26BQBQudyQb3VCfFqmpmnM9avvR/3qzOlBQ4O6KFNK2owEAG5J1jjj9xPuhS8o1v3KwWsP87m+8A7i+iqVFQf5ARiCHtGpteRYVl4+Pm5biI/bFmq95p1EeRMOADzKuYRHOZcwe89fXF0O764sRxlD5iH+8ZkFaN+iPsqWYX4olvx1AuN+ZpKSNm5eB0d3qYJJdZ1qga5TLbDH6ikGdWuOa7unoutUeVe5YY3dUaNsZ/Sur7oXbVouoIN5QV1jZcnzQZAfjE8eEJHpyGatuHphzRDF8TJgURhvheJ6Nqijdi2xO1yZSmJi0JaZlc3mCgBKRaRG+d0rfwcAVK2s8iSwPTJDIPNrn1aQg/oGGh984vUwF76PsuWYsJNVqzGRnrIyzqJ8ReF1SwLqG2o6PBkXCY9XzYBCqYSBfuEC7/Hn8DXTCmXYx2k99N+sW0AjXfEp4XSJrZWYIYxwxx46Ck9MEfQvNuslOd9rz1K0XnMQO8cO4sj6iac/BrZpBgN9RmNpveYgNyYFs7IMkc7ptBohXhFcHwCOXPla7ak18oTL4ralKhTBtkW/cfVDl4QeMuZWzP5U16kWXCZfu+fucPUJR9epFrhzQPPhnKJAp29YyJwVInJl+8w/qjYeQlJTcLDfEK7d9vw/OOehcrPKKSgQkTiLopDfx9j5RSZOoiJGCAJzdHrQAMaVpH/f3Vrl02OYjTBdTQd8ktU30Kx9TXY6qvX6kveU5wMD/XIc4bLeDHx4mC/lSkZOnmgcAEiZhpjIejoTbkDaY67+Pv4I3scfwY2QiTrNvfXBC+2XCf1vY3ISkKdU7TbnKwtARYi9/7fNXRx4UPgg9R2XH9ZZtqQ08841GaKIyXYXuIz1G7hHVLShRsXygsKiQY2q8NqzVCNZslCXGdiGOd3ovmuJaLzD+n9E8/laK1tX12QLo+kWBc4Xlgk0Xbavbk3dbfpP30gfQFKHVtLlk62UiWB5l974HB+FsQ6XYFylKtpdZey+1sNGI3jOCkxvq9oAKVuqlE5mBgDIU6YgT5kiSagNKjGbHl1+OCby5VWXr1ZWtfPPH9PTMyiylstqW7m5BXj2fK1G2bSohqhUxxUAQ6a6mAokZUia9JRQovdj5jjkx8RAZCtUcnnKAtiFO6Obw3p0dViHrg7rsNmdCRRUqXQLVCnTHgDwPnIkBjbyRnLOJ24uq9n6RzO2sYplxU8sSmUqoGeo8RiwOt7F/4OgdEdEZ31G91qL0L2WdpMQS1abrz4W9J8NuomzQTdhE8KYuvb5nMUYpyUY8Ua1ppS7lyYceaKbbZpPoI/cxAGLWHwP+zOLOuXaCQ5HlCtXGo5P1qCRcS04PlkDxyeFCzbOhy4/XDmKHJ3X23CD+du57fxbVmbjlSUIcmcUjiD3MBx3Vik0rA331JpLGu25ybnZkv26wPnCMjhfWIY1Uwbg8QdfLmBQwDf7MB+uiefgmXyNaz984QXz00+h1OFRrNhBzAGgbc06GNmYsev8ZdIRANCzjpGsfL+RQv85b79opKULP6wrIYtxJWQxMgoSEJcj/FI7JrzFg8htCM5QHQM97CPt5tWjrrXub0QHLP7bBksXX4RCoUSZMpqtMwU5zBeNT6Is8fK1WVZOke+JyvXCuLHyNayQk7YT+dkPAD1pM018ThoUpNpRLmdQGkoipOfnoLR+KYxq0BUrWg2D82DGjrW13TjB/CfBLZGe5wMFZaNaWfGm4dzTtwBAEBuBRUb6fsRGNUFMZD3UqPVQ42fBYlKTe3CM3oy65TvijN9POjv3S2FG49Ho90M33I1i7Px9a3fFnd6WuNNb5R9qtu2MTmu5hkbB3s0bth+0n4RjcWQmY9pZaXUf5nfEjvlyJ9bkEBSbhLYrDmKMxUXsu/MS++681PlepKCLpsvHXJdJmOsyCf/474Me9Lj2XJdJWO8hvv/PKboHrt8xZhAG7z8Pu09esjI/mtTFw/PM37Jxu4Zo3E71f6OrpsuPBFZY9J+vemp0vrAMfUwZ97umP6q8HqwCBuFx5Gqk5oXhfbxqU9z81FM8tFrInY7UBJ1cxoatPgP7vdK2jcH252D36yS4xkdhgkkHZObnwTs5Di2r1ZaU/+oXjQKFEj8P349Xd1diyqLzsDoyTUS6naqPR5uqjKkiIusLapc14cb6/DAfgelOqFHGCGGZn1CnXCssbsE8Eky9exMXhjOacCNLhtx3/jIQE9rIu4A0uboLgX+sw/hnNrDtP0m2/2mkHzw9IvDk2RoMHrRPdj0WpcoOEmm3LOHyiZeVy4iTPtFStvJ62Ws86ice09fTQ/9n2ziiHduQOb3DtgHAL0kY8jEwmSGqBpX/QLlSDbj+Z5uYR9nm9WqJrmNo2BqlS3dDqdJtkZ/vBsPS7WXvkw9+CiR1fA2OQatvIRtjk9LxQ3XGTq6vrwelktEi+ATWo0YHjmS7VFfFTODbgnUhvzcbxKfhtKFP68bY9ucgbLryGFYvXGD1wkVSTlezwteIWHjocAjlU8Jp7rNzSTyLTjUY0052NvOUExwSLyBcS08nLGzTEwDQ6KJKewyeKH5KO9HJBgBDwPw2n3TZMQCwCjklmisHh5XSwcr58HcNFvUNLjcRDtnS/rNSMLbeg5DJYi0/ND0FRpWq4n6oD34zEh+Jf3aM2ZjU5C6Wr8xGWKYTmlTqL8idmJObj96jGdPpm5uan+Z10nQvbZ6IuGRpx26HYdNRvpQhDvRiCHJbt4GyhAsAdWtXxqu7K/HqLhOn9dhe5iRS5UrCXyiWcJVUAKd48c7m6IYH4JXqgIYVOqO0fnm4JjGq/oXho7Ho0T0AQOCCZTDQ1+cIt8lVFem8iVH9cQP/WIemV3fhU3y4QEaq/9nztdDX14OJCUMMZgMZ227zbdKPkcp8H1SuF4bM+N8ERCtlaqhY+4lk0RVdajTh6s6DdyE0LQWf46PxOT4aez+9wopXD7Di1QMAgEn1lTCproqVG5p6DibVVwoIVxvKlf8T1WvdQuUq21C+QslkOJiy7TJXzy9Q2d3dzAt/1Nf94FLsmzxEJw+U+PRMnHAsfACdEV1by5LqoiE9dSZc78g4Ls8b/4ixOnIVqpQzZ/x+QrtqwpN8ctrt25gQXPF3Q/DEtfizWQed7kkOJzrZ4EQnG0wxns3VSwKn1lzCoZdbOC325mHmu2rtqzpiP3qJas+oMHZdryQm5dHGD48lCRcATt9+p9FbAWAOZ/xYQT7Gwk9dm2q/GU1xHwsdiPI/jMaWwvifHU8fpSZH5WOq+qfGC9rjnlpLyrH9TyJ8aeOGG3T71ifq98surhARmWy1oKc+AfTUJ4Cbl5/zloiUlBrZgPKzH2q897wsO41Fke8rO3fSpevU2fwYzbhiRz0PqbJ2DL51njY5PaHOl49Sb1umv+GZvURE9DiohaCwfSx+2nic2iwTfnafE0NpqKMFDXVk+tPyhBkbRr2dx72yhT826u08+pTkITlORNR5qjmttrQnIiKlkul74cp8nmzs20Vn7kh+BgplPuUp0lSfZ34BmV9j4sL6hotTvauj25aj1G3LUXrqFaBV9nvh4v1P1HUi8x1effgunbn1jszmHRPJ2YfNJ9+Ue5SnyKR8hThrhjqOeLwVtKc52lL/OydFcnM+TRTU+W0pOCW8kpyrC1bdf0RZeUyc7iZ7Vd+zuAxxPOLI1DROpsleC5p2zY4ba7LXgn49a0Wx6UwM4kbWe8jISpxS/vf7Vlzcb6lxIqIuU8ypyxRzuun4hYiIJm+5KJK54D+QHkWsIseozVxMYxa9Rgli7RY9cwQAbDojtNdt97RFUl4GNntclpkhRp4iGq4R7eAfPwNRqeId349hxjqvBQCbLz/GvON2mHroGvIKFLjr/BWBC4Tnw11nzkfAfEbT4GuwLMweMI9GTSXG5PrfvvFDQEAs+vZrhapVyws20q65eqB/c5W2WapMTwB6qFwvDKXKDhatxYdhuZEai34pE9m5SZlZ+KFSBQBMOnX+qaElpr3weNQ01KtYGe+jha5nAxt5cwUAmlRT+VMmZ2bj0YYZ6L/1NOc6lqssQFhmEuz7Mp9pJcOy8E1j8pWNdpqPmz2ZI5k3ex7jSmHw8fwy7FnAnEpktdOWxsKnpn9mqKKg3QnqgDtBjNYWmGoDQ/1KuBvEbJx2W/APGterDgDYfOERElI1+8q+3zwf7zfPR/9Wqr/fgLlH0W2yBb74R0FJhEsPXTB4wfFCvafC4Oi11zAw0EdodDKef/THW7dgmPUSepW8jz+CmGx3vIrdgwLKwZVglV/oiZOO+OIehuEjhcGXWNMCi3N9x+Hp8NkoDPgmBSkUVtvdO4Q5rNPukMr+3nTfQfQ4egpN9x1E032qJ8d1Dk+wof8vAICvy//GubEjBWv5JSRi6T2Go4ImrZY0LdweMhlGlZhTllLjADBrRA9B2zs4VqT5KkmBQfWZp9uO1VVPd9fvu+LNzRUYOk37d14n0t0281fhJD19HPdn3uQGd+22lpCktYhKPQzTH92RUxCMelVUp77844VxHD5H6GYXvP3eCx4hMbiwZBxKlzJA37ZNNMoH/iE+LcL2+Y5fi4z8XGQV5ME/NR7+qfGS/ZGZqke7545fkZKSxbmM+W5aipN/jsAgS91PIZUEXgWGIE+hQGmDUngVFILUnBy03MP8qD0cMRXVypRDtTLlYDvkD3Sv2xChM5jDG1K+uY2qqk7kVKtQDnWqVkK/tk3gYb4USiJ0q9kYX4ZuF3hIqGO003yMdpqP44Hyj3472y7X+f3VrlZJ1gOgebW5+M34Ldd2T9iN4Y0ZTxF9PT2882KO4vqGx8Ns9SmM2qz9XDwfGdm5mDK0K9o3q4eo+FSkpmfjzOY/ufFb7sJDJyY7D3Kvr4NCRYXFdTdP0RwAGNWvHZwuLIFR3Wr4YLMM57b8iaV//SK4Rvdai1DJsA7XntTkAVf39IrAqjVM3IE16xhzW24MQ9r5yUWLl8JupOlpid2rjZTVYbKf+WHI4mVybv1DbQSsWoqAVUuxe7Bqf+NNSCh2PHshmM8nZQD4EBaB6LhU7LJ0wC5L6eBXM1ddxMxVQr5ydGLSFkmZFUwa1uJ8d1mwAYb61t2CTjVn4kuScL1757WnKdJqXhi5TpzAkMXg51to/RcbIiJ6FeclKOr4GjOGnEONqID3CEhE5B0zloiInEONZK8jhYCoBEpIY1L2XHnlVqi5xUFGRg69eeNHQ4ccoIyMHK5/872n/9o9/Ftot0L31ELqpoJjAapHM6vgmwKTgndagKR5QQ66pN5Jy/0+ZoGI2BSufvGBKl1Tsx0W1GyHhaDObxMRuYRHkkt4JL0NChWsGZ+RKSglhQWLrMjtSygNG3GQVq9lkrDmxg2ggkxbykv+W+v8Q36qx+6sAu335ZTwihxjH3GmiIshZ4t+80T0ISycNj56ShsfPaVrXzwEYwEJiRSbnk65BcLkpAVKpcA8MWSqJQ2Zalmk60uZF7pMEZos2VRJ/JRJRETX7rkQkcosRhp4tVg23T/e7udIVxc4hxpxRUkForF/G33M9ojq/D45uLgEc/V1a68REYm+DOqY/GE6peSlCtpSpSjwDI4h01maSWnxkdtERHTK/h2ZzrLg5LvMOSQ7Z6XNfUG7ie12anZtBx3xesW1WWgiXRYnAy9z9awC7bZIIqLV1g9KPH8aEdHz2HdcfczbuYJXXdFshwUlZGRSi12HJElXvV4S2O61jsx9d3IEeSXMihtjSbfvgN20YtWVErkeS6iszdY1+aNG2f9lnLrlRF2mmNPHr6G06eQDOnHzrUiGJdurQWNExEtEpFBwrPt9SLewSMpk/omlCFahzKbkrCclfUmNyM3N5+os2ebw+gqLAt7PnDqkiFWKcPuuPE4d5lnQhD2XqMM8C1IolRQgkSgxITWDfv77KBERhcclU3hcsiTxms6yoOl7bWnxkdu09tR9ro+IaMruK7Kk236FuJ8l2ZwC8WekTWsd9XYeR7qs7Oi38zXO+Z6QIt08he5/+2Y7LMjui/iJjh1TrxeFfBN4WvCjr35ERBSY4U8KpYIUSoVIniVdPgoyzlBOVCNS5DgW+vr/FxGVkCrqS8tQKQjqpMti5S472nPMgdy9I9iuoiemDIhIwL4rjvi5fRNMHCQMr9d0vwUCVjI2jzyFAq0sDsNz6d8oW0q8bELGNQQnrUKXhiHo0jCE689XxMMtsgu6NAxB1XKa49iWNEqXLoVfBu/FC4fVaNOqPq7e+ID3zkE4tO9P7ZPVcPrtR4zs0Bo1K4gTZk5xZvwo/+l4EFUMmWOFK7+shVXXs5jjwtiAcr/ZSZVE6NikPs4tZw4xrDx9D5/8I/B8H+NH+jU0Ft6hsdh1URW8euxma+ybK0wayWLj5IE4e/8DfmrXCFMHi1PZa8K8bwcjAOD4rJEIGLcBTa/twJI2fTC1WVdUNCyD2W9scaq3ODD1Oo8D8E0Pws2ex7hNtnUeBzDaiXm/7Ks6HEOaAwD6GTO2NgVl42VoB64tN6efsS/cYoV+oB1+UNnXE7KYz6tmeSZV0tEAKxwNUNl4xzox9uzrPXXbKPNbv1Rk02UhFcXLb73Qdcxk50GcGj8CvzRtJHsNh69M2MxS+nqoVr4cXvgH45dmTXE9nLGXx+ZGI1uRhWxFFja12gPLfyaL76XCDBhUmAFAc+aK4qDjfGmb++djSzWOlSSm7L0Kq9V/FHudujXEx34rVSgrK/8u7jB61F6MlXMGIiEpA1/9o9G2hZbASZoYmYho0vaLtPH0A/oaEiP5y9Bknzn3avvFveg/MSUA50TmcSBPkVfstea5/EWhmUGCwmL4UAuRy9ipN84Un5FJJlulNZoFLn8LzAssDvsdocN+R2jGxzlERDRqmxUN3XiWrr5Q2amvPP/M1cdsYh4n5bRaKWRm59Kt1yob2RuPYCLSrune+SityRUFrsGRGseTsp0oKduJiIg845YSEdGzYBPBqzoCkvaRd8J6wbiSxBogEZF77HxKy/Xk2lKabmFh98VLYM9V12YL0yeFFlssKCA+kZpvsaDmWyzouV+QpJw25MaYUm6MaZHmEhHtO/mYDp9/Tmv23eb6fp99ggoKmM+6wzzx/bN9UmNSyMwu3FNux9kWXCEimrxHbE5hx/ivbJ2PJ3af6IkdY68f3nY9hfhJcx0RkZX/YJFJgYjowo13dOjsM3r7KZDtKp55ITAyQZZ01ZGem6uTHB8BaS/piHdfOuLdl077jSAi4WM6O3bEu6/Gdea5/CVqq5e17ot0uiefNE/6kPhG1L9ntz31+2UX+fpGExEJ/HS1bYpIkS6LxZ+X04AZR2j+dluav53ZBIlLTBfJma08ReO2SPsTE2kmY74tl23vvvRM4z2ffPKe9t99qVFGDuuuPaJWqyxo3rlbWkmXiCFX99j55B6r3ezgFD5AMI9ISLgKpfCHV33Nf/zO0cPoF/Qw+oVW0v15yF6yd/gi6k9KzqSfh+wVyLGluGi+Rfh3ZM0LJYnUvESd5Fhy5ZNuREwyV9dGuroSLx+dH6zlyjSnY9T3yVaRjDqZ8kmV3/4SGKXxWhlp2ZSRxpgQAr9q/57qCFle1SPNARq+UyA9ISx9+on6etWeiw/x5zG3uW5n+ue7MpGqjpleFPUfM72IzV6Mm9LW1qq4D/t9t0iutbL5Fvime6F5Jek4oYsWWiM769uRy+B4PHu+Fr0sTiEtOweVy5XF22WF84GUwsYj97B9kbTJ4H8FCy7cwdGpv8M9LAYKpRIdjXULipOa+xlVynTUKOMY0hz6eqXxi5EHZ17QhOchrdC6ljlqV/hVVmas0zyRecHG9h0mjWf8N/sNPwDHuyuwbpsd9PX1sGOD0F/U4uhj3HngBgB4ef/fzSSyxn0M9rS7UaQ5a9zHaJT7tP9nZOfkY8+q39Gh1Y+oVKEsBk89CocLzLHZjvMPiswFbB9/7INPGOZb2sHFUvvpQo+UcEx/dxwff92Fl7Ff4ZkagTZVfkSfH1RhSk3nHITryaWiOn+chevJpVy7Xo3KuLdLFRVvz9LLcP8QiMtOTJbh39uuxx2PnVrvkY99Jx4jMTkTvw9qj56dGgMa0isWKV0PH+ohAfX1yqC/sZuknFzc1oUtHLl6AeWilB4TMLlj9XHIVqSgnEFV5CmzcMpvqECWj2OmFzHfdSJHpCubb+GIeOFnlRPzws9TYNnRipOZ02UdTn6UPhzBgiVuFl+9IkUymoi26b6D2GE2AB8jInHHi/kMAlaJbVqRsUwMUxv7jyVKuA+iH2FIXTNM+jATNt3OQEnS9j19PbHb9uxPi3Cq8xFubmFwdCoTEKZdwzpaJIE34b3Qu8FbZOeHokqZjnge2gp9jb7CO0F1+KRlTVXcAJZkHUOaw0BPc5CT/8feV4ZXcXXhvrh7KSRomuAOxQotHtylFG+heIEEl+AUCBEsobi7u0PwJEAISYgTN+KuJ2fdH8PYmZkjSej3fffe93n2c2b2XnvPDDm8Z83aS1g7sVfcIvSWId2AtGA0qmSCWabSzFUd2zXE9PnHULFiWUwYw4R/9vy5CU6eYypEjJm6D5eO8/7NmmTbd4QtHl1bjB6DrVG/bg2c3F/0OYcz89NhXE5sG5YjUiVSVurniFwm7oElXF0Y+wvvd9+5aX0uf4YutKpaD28H/o3fXu5Gm2pM8qw38QEi0tUFISELzwHg4XU3NDSrhbP7ndDdvCVKlS+DAS1W496nLbjuuQUDWjA5Te592oIxXZi6hku2jkGXXtIUqACgUqnx6t1nmDWsyZKuMrSpwUREZ4JcqOX1tdTy+loiIlKT/A69MISUPWdbvpoxOcRmyPuyqtTKNljWpBCUJnXf0MSc9xNpi/cq2uK9ii5HnOH6tMG8/GTR55U994iIMS/Y+G0kG7+NtMpzAdn4bdS6zsY7uneHv4VvJhHRZm9rxbG9AdJwz0nO04mIKDIzmuu7F63dpvYwRvvzsWv+r0BoUmCP3RK9ZGX7j2b8lVPTpG5uo6cwYboHjj8j2733JePmI5nX3V8GbadJMw8V7qZlsPzjaElj+zXltJ0rra0PWBOCZtM2XhTQNCdokxPK33rjTf2br6KDO8Sh+ZsX8S6N5w89o5MOjOmtf/NV1L/5Km4sOpM3NbH23dPXXOng2Zfk95kzwxbOppup4u20X7JSuMZCM4afiMgnfjMREeXlp5Jb9EzKy0+nR8GtZf9RWNLd49ObiIgcfc3pbbzYzzNLlaLTpltQmJefTAMqTaXkuFR6fsVVp3yfXvKx23K48NGTXMLC6donH1pxR/qfsigwyXk614Sw9d3Fka5wTCjPNjnS1Vxv7vtFWu/hfwmapLv5025ZOdY+q2mnZc9Z0i1KHA98TUcDX5L5A/3ISUiOBSFdOdKWm6MEj3fB3HH/NlZERDS00wYa2omxw9796Eejdp6k5svsqPkyO9p9X7cCpQsDVxzkjm0uOHHHLzylm42ahMyeR4byrpj9m6+iXIG76OjOGzmidXHyJRcnX24sIoPnCOGm2rFLb+jafW4DvOhIt/WNdUQk1njlSFcumYqmNqwvVPn51GaendDxmJ5+lI9AajOvaJ3RNcFunBU1em4+IDr/cc0eGrXzJGXlavcdvRB2RXFskvN02huwX0LK7OdCt6VERDTNZZaEdC0+LJddMzUvjVtDbk0WnTY4ULOVdtRsJfP38I0WJxdi+98E8n6lg+2OyV5z76M3kqa5TrOVdpSalS07Xw6apKu0mXYj6Ge6EfQzXQ5sy/Xl5kuTsgjhErOckrK99b4XIqK47DQa9mQPERHla/H3loOhpKuNXOWOb593ISIiqzmM5wxLrEunH6Gl04/Q3HEOtHS6cuTqinOMRpmVm0e777+iBx7+1HyZ9P/poL7iwKQ+P2+mxMR0rikhMJIhz3Yz7aj9LCnBamq6GdmF927SxORFR+nsdVHgyLcLjngXPY38E2wUCFVNj4LbcGcx6fdEozecGZekvK+7o23m2VGbJaxcRQAAIABJREFUeXbk7Ct28B6y/gi1mWdH997zvzasHDuHxdi/lXf2iwq+PvxuaFGS8IDtR2jBiRtERPTbXv0iijQ1Vk2wmu7+wMOiOcIfzUxVpqJ5gV1TybxwPuySSE4IlhBZXH7nJRljiVlI0EL8tHmf7HV1XYtFbq6KcnOl0YIs0fqnBmn1Xrgc2FbUiIjex24QNe5a+emczMuouYrzixIeya/pbjT/VlhQTVfp+MObQBrRcQON+HE919+/jRVHvERiTVcOmgTbeuVOGrvrNBExxNrn583cMYsp4x1op80d0bg2BKaJPRTuRL1TkOQx3WUXdXu4lDtPykmnbg+Xivo08SRqnaQREc1ZfUZv0i105YjELGeEpDAbLA+Dm3Eba2rKwcPg5qhTaRRSc70RkGSHWhX6i+Y+cg9A2/n2mLiDyVb2btdCdGnaAKa1a6DtfH7n8bcebbFz1jBRVvadM4chMDoBrU2M0NrEiOu/sFI58cacpdIkLGo1YepfRzF8iiOm/nUUfyzUnRRl7pxj6NNrq1710YRQ5avx8APzzJ4hMZhsc1b0nNcsJ2PXZKbg45l545GRo5xYhsXJzoe4JsRkFz7pPIEw0/QPUd9fbos5uXIl5Dei9n3m161fvh5Ohp6VyIyrN1p27ojdzO7LOZePaL6KecY1lx9I5Cb91A5LB/2CWlUqYumgX0RjZ5w/IikjC81X2UsaC+Gx3Hl0VDJKlSohe48Xf9qHSxF8whg2QEKI6mVboXpZJjl6qxpMIFBI6lVRY3EzuDsA4Evma3Qz4qsQdDNyQDcjB1QspbtUk6E4HWqLlLwEAMBar0kGezDog6uua3H17ToAwLq5zN/1nvtGAMCAtmt1zv+0Xbxp/PHvhbiwgMkD/Og5n4RfeHz87Fyub/xEcZY0ALgbzSSMD8uMQ2BaNEwrGonGBxp1wMQ38vUYuz9aBqdYT0xq2AubW09Guiob3R8tQ9XSFfCyrzVe9hUXKIjI5AuO9jJajxbVxuFz2mOu5amz4Lj5N4wfJq28IgttjKzzp+IbQslMwPY//RjIHftF6M6XSkSUniF+/ew5woaIiHp9/ew7uuhME+y9tZtvL+lvM8+OMnNyRXJFgWnOOyR9Qg2XxWqP9ZK+axE3da5v7yefSORUyDkKTg8R9a2/9ogWnr5J668xm6dCTVZOqx2797TO68uBXWesw2nZdYcO5hOWxMWlUlxcKqkNeH3PViUSEZFrzCryT9L9FsVqs3LmhSfhE/S+riHY7jNXpz22KG26/dtY0fg+vI1bU9P9x/oO/WN9R+/719Rkz55igmS0abrbvS/R/Wg3Oh3C23O1aaiaYDVadk63h0tpzEv5t9azYedpqgv/JueddJU7PuzfU+kSRWNeiIn/g1LSjlJQxA96P5w25OSp6P57P3K89VoyJiSjPivFO/CxyWk0wIrfCS4o6crho1e4Xmtpw3mNrGdXXoszJrGkyxIw+6zz3RZRcHoITXH5g7b57KBbUXfI2tdG9hr9n66khe8dKTAtkk4GM8TmnRIqKyuEg29PylKlcE3YL8SRgBHkkXiZiIiexeykxJwQiYw2CAlW2zgRUVBcIgXFJcrKHnkhfU2cuP+87DrsudI1NcHmABHnAjHMnloUeBhzm2tycE/i/w3OCxLcCFEY0lWCPjJTBtrSgolSDxki4jbSdCHAn/GiYQmWJV0hNImXNR+EZsSK9pyIiD4lM/8PdJHwdJdd3HG3h0vpbtQ7uhwmv8knJF1h4M3LLzZ00O9nuSlFQ7qfw2tzxwnJf9PDiPnc+cMIPtIrLz9T6Tn/o5Aj3ZycPPp5qDX9PNSaHI48lZ2Xr1ZTp4P76PCHd5SjUtF5Lw8676U75LnNPDvacu4xPfzgL+qLjE+hzJxc8giOpjbz7MgjmPnSWbovIyKidV6Me1p8TgKdCJFm6yIi6vFoMc19u5vispPpesRrehnrRT0eLaYsjS+gg29PcvDtSTFZ2jd2NAn1UMBQnc+nC5rabacNDrJjwj5NHHnxjnyjYkVNk3RzBRne9CVcIYTkG5Es/yP3b4CNmiQiCkxjKoWcDTuqc94qj18ltlwlVzIWRekyVpS46+6rW6iIoEm6cseFQOFJ93N4bVEjIjrh35k8Eo6SR8JRSsuNohP+nemEf2fySTrHjRMRDWhoofedsrL6zFF/zc2b9uUXvdbWpulqI10ioj9vXiW/+DiyuH+bjnx4T0c+vFeUjUtJ57RX9pPdNJy5+xJ1X+LAmReEMpbuy+jg58N08PNhuhd9n65GXKerEfLlaYoaSlrsg6hNsv2GQGk3PiJRHBZ93kUaavv5izRU9aV/iKSPxa4H+rsjBcbNI//Y38kjinFVjE0Tmzg8koK1zv/50RKuacNRL+XvihByPuVfsqNF/Sm5yaJxOUJl+w05l8O/QbotlvA/kg88ij7UubBY/nE1qUktMZ8FpTlRRh7jkSOXi4G+lffCCf/O9DRqGT2MmE9+yVfohH9nCkt/Ro8jGcK8EcrbsPQhUaGMNvJNiaxHRDzpfmukZDNk3cKR+WVccPcWLbh7S1GeteMKzQdCElYyL/wnoUm6rIbMQE0Ovj3pVNBEmTGitasvcsejhtlT3x5bvvn9/htQIt13CWJyeBCtTKqmh2zI9JANXfLzpPRc5bwkQi33eiSvyZ8I2U9z3k8ktyRXcktylZDutQixq6G+UCJUJc24IDDvsE50PrbPdhrXz5o2LeOfr8USO2qxxI7sb7/gjrn5ZSeReVkmR6/Xaz9R/9zOq6XX+yornMd+ah7ri+UfV5N3ig/di+Z97K+GzuCOFQiXqGhIV+p2E5bOJ0JJy2XySCZkM/84KjX/BcvVI0ftgIYWHMHmZOXqremq1YwpgyViTUx11a86wf9HwRAZmciR7oVzzkREdHC/9ug1B7+x3PG9KOYHKjc/S9TksMPbXO/zPX6jRGOXwly4492+96nnw0202/c+9X60mXo/2kw9HoojDh/GuHEarKYmawjptjq2ixocsKbeFw7RyOunqPnRndTggHwEIUu6c9/z5JCYE88lalrp8ZeEdP9tTBuxi6aNYJSPZw/kI/iUMLbPdhrf30ZEuoO3HyUinnyFpEtE9HvLJWRedhIFf91r8XzpKyJVTYxvyJg8B1acSkREcZGJtH/Zaa1zCgJhAvNzQWPlRL6NeUFfBPlE0qUDT2nN1P2yjYWcpqt5rA0TnJlfoBlvefuyW5L0lfVb4kqQp26hr1Cp1aJGRNTwlHQHtekaO2q6xo7M7Y6QS1C4qF/4ScRU+2UbEVFkWgrNeKgcQFFY9PllC9eIiAb10z/D1g5vc9rhbU7Hg+ZwhMn2acoJP+XGhHPl1mh/ZxW1v7OKXsf50xyXwzTH5TC1v8OHdsolBT8XyigVbomBtPTDIRrgtIaIDCPdvHz5VJNyEGq7c95PpBMh+7ljIqIVHvMV5wqRnLSYoiOMKDrCSC/5p+6B9NQ9kJzc+YCjP20u0JJ/eI8WTa1VCLmx0KBYOrTrgWhsbJ/tZN5hHdd0ISIgWqKxsuSpi0SFpJuSkGYw6dY/qBxaT0QUkfGWAlLuU0CKYpRp0W+kFRSsRivUbIVjLFKTMsh60SmyXiS/kaQNrgnMfwJbBRcnJay/wAQItLSwo5c+IdRz7X7quVZ+Z1YOXa/spZfRwVwj4klUjkyFfZpyH+Ii6UMck2ZOSKos2qzfTQvP3qSma+xo+aV79CGMcQ7XJF0hnEMaKh77xc4kv9iZ9ClmnN7PW1ioKZ/TdLURphzp5qulb09CAtdc47eXe2jUM959jyVhbfj50RLq/WQFZaqyv16T+WE0hHS/JbIyr1JsTBdRX3qqft95zVSIRES9FzOBKENWHeYiuzRDaN++CqDRvfjIMZY8r593IU2Yd1gn6h/71c1MqOkGxDDRZEqa7pltTDpJOcK8uV+cy8W87CTqX24y2fy5n/qXY3KpxEUmisZZeCfE0n4PJpzX6hW/Tv2D1rJNiMdfAyKIvrF5oTCaLpHYRitHulEh8Vw7ZnNbdB4VIi1XU5QIktmsiUxMoZYWdtTSwnB764Z3DykoRbymHOnKQY6kWU2XbWzfwrPyvrW7P/AuN0uf36VOZxwoNu2cRI4lXiEBp2V/kMh9SwhJVwlKmm6ewISVpUrVStwFxcckPpbfJ4V5y9Ak3T9ctBfwjI00JiKi1KQllK+KpnxVtGRME5nJ6ykzeb1e9xgfO4TiY4dQQtw4TruNiWxMqSmGRUuOtDpqkPz/Kt5EhRERr82e9P5Ao2/yyW7qH7QmR3dnrmlC+INfENLVO7XjD3Wj9RWVxd1gpsRx7xEdUM+0FgAgPTWTGzdqUIM7rlK9ouj8W6LTir1w3TYfHqExmLjrLEoULw53m4UwrsaU7ahYtrTBax71fYuGFavBpHJ1WLy+yfVbvL4J+5+G6rVG7zpmonOfTRZ45heMdvWN0MyKibqyHTcYh168RVp2Lt6HRuLUDKbEz19tu3LzrH8ewB2HJm1Cg2pMzlCXUBN0bhBs8LMVBQhqFENxhGS8x6eUh+hvtAhLmt3HjYhNGFbXSq81bHyY6MaetWbC6csBLGl2HwCwpNl92PkOgmXTO9qm643r70KxL9UT+0YNQ6OKxuhz4CgezxSXBTrcSZofNjvjFMpWmITc7MdAsVIAgEpVdyAuqg5qGktTg2qiWPHyyE7bjXJV1nF96QkTUbGGNKoyL88DtY35Eu+J8aNRy1h7fuHpNhdweMk4UdrDjk3FEXMj1x7D1Y3TdN5rYdByqbScj9eOoi3lo4kuRvUAAH3qm+KPB1cAAC1qfA8AMDvC8NScNp0V5xcvxtPmjMYvDL8BbYysSd2GaLjXfHi/UKFG6/KYLwETEy6fuf7qkYJVKigqsK+RLS3sqLWl/mXIhdDUbPXVdFm8jgmhVudtJf1RGq+TQqi+alB5KvkAj8/xS0SNRVwakz/BOaQh5eXzFQGEPrZOvkFca7bSjpwDw0QyREQLTzOad3xa0aauLAq88gomIqKha5QTs7C4+pK3y3vFfKGkzCyKSEmhUSfOUO/92uezmmy+KprSU6URgpqIi24m25+TeZXS4n8jtTqTkqObExGROj9OVpaFOl+5MokusFrukw+MXVeptI0cfFx5W/DCnkxABJsq9VsgJSeE7oXPpPhsHzr/uT+d/9yfG2PdVNlPbXgeESzbr82e+zBSbJLySb6hJFr0Nt2UtKOyV5p06SJNunRRRLpCfBHYWJTCMf09wpQexCAsdh9H1yKP0bXIY7TNZxEtdi9ae2VRr6cL4ZEmlJyy5euxqWgsO4exnUVENaZwBU8ObYhKOSgxN7CEGpMiLhskJFrNhDWGRIT9m7j/lnG6H7BC3sWq3VcbZq/F+7hjIiLTbeJn0UW6/2k0OLGV3OOiqMfVf+hcgDudC3DXPakI8KsJs8nHku60Vtp9l4Vg7bgjbOSj7ZQQl8V4T1wOGk5ERC+j13GxAmyTg5BU6x+0phyVSnFcDgf9uivW4hNAkVcNSnjzQ91oBEUYISjCCJUrTpOVOTl6DE6OHoN2RtLSLGbW9vjp1DGYWTOvFI127MTLkFB03POPSK5EnYp4HRrGNW046+4hapoYbjwVw42nYnlTe9i0OY8lH6WVa/9XUNc4CGp1kuxYbNxwREY3QR0jP9SofgARUSYIjzSSlZWDUeUZnLlBaHbYeP0JalWuyCWSueXuK5nr/bcFvP+2gHnLRvD+2wIvVs3Seq25my/gtXsw5m6+AAD4HB4vkWl/3FHSd8zLTe/nkYPTx8/4kpSO9rPt0X428zyax5oIXC5+1dU0LXxLZGfd1jp+O9QX5wM/4nzgRwDAzRAflClREm2+Y/7uppVrwLTytzfTbZm8F1PXjobjkpPY+ZRJgJOakP7NrpeeF4nA1BsoWZyp0jvK5JpofHIjZ+7zdODPkvkOvYfBOyEWDQ7tQOiMpShdogQaHNohey25/hmNX+Cwf48C37/eNt3oOCabVLky0ow/cqhfpYqkL3CZBcys7UWlaqZduILG39XAoCMncOePKTCztseDGdOQmpMDAOjXiLdt+sTGodn3NUVr/ta2tb6PIAJLvtVK10RSbhxs2pwX9QshN1arbF3Z9YRznL444kPiNSxsehfFi5XA4cDJSM37wslYNOOzbtn7mOP7smboXfsvGJVrBnsfc8xpfAX7/Eehv/FSNK/Sj7nfqsyXoK5xoOh69erwNvdyZQegrrFh9lrWRso9z1cb6drhvbH8wj2tc+Wyfnn/rWyX69K6IeKT0+G4Zhx+tzqFldPNubGx15hMZqZVqnHHF0f8BgBIyMoUrdPogD0CZlpw2dNOdj6EHDXzvSlTvAwnF5vME8CNTQxpDrNiyrO7/fO1pMtse9FxYRAb3RJqdaJWmeIlvsf3tfmyVjGRxqhdJ0okk5lxFGXLDRb1/bn1PA6uZL5rgxs0FY0NbdgMQxvy5WR+/F78HdWGC0/cYX36Cd4dttR7DovVJ+dL+i5H6lfKHuBtuFcXS0vIy6FiqTowK1UH6XnMv9eFoP4oXqwUslTMj3eGKgYAcDKgC0wrD5bMH/IDU74pdMZSrq9LAMMrP/+xG8GHl3D9QhkhCmTLZaFNDdalPxcEptvFr2uB8dorkqoEJojpF6+S5a27XBNCzlCh+fq/2H0c+ad6KI5p689Xq8jGd4lBc4R4E3fi630yd2rn3U80fil0OZ0PsaBLoUzy8JD09/Qm7gTZefeTyBYFslWMyeBxDOMmxHoRCCGX8/bmBx9F8wFr09UH1596UOcJfJ6DYX/xrnkN9snbQm1cXxAR0YPgAGqwbwcnN8l5Ok12nkE+Kb40yXk6LXFfRRfD+UxQh+64cOaFfwNfolrololm8kyz/rTCxiIu5hfKzLhMmRmXFdf58Xep3d9QTN7IuGV2+MOWsr8GMg1eIjbDNDjOuImZnrAm0xPaX7//bQjtuPqYF3Rh3LKjNG7Z0cLe1n+Pn64m6eqCSo80fMLgAiEWu4+jM6F76EzoHnoWKw3bdQhYR4vdx3GNnaO5hly/Zl+eOleyFhHRlTCpL6ij30hZIk3Li6OYLMYd6dmXA3Qg4DeDSffTaz+a3tJS1De4orxT+JUwPhH1vSh7svUZSE9j9nPuVizROvmKS6AUBekqwTMuhqxeyNfSExJtg307KDefscUt/8g8h0+KMrGypCtXzqWooUm6bNQkEXGkypKuNiTEKYfi3ndmnqcoSLegaHLKhobeOsa1K58Ni1ArKDwSxHb1nEKmA8j5Wp0lKo7ZiFzreIc6TSr0v2vhXcaKCnJVcLUhPz8MJUo20CpTophitWP8Vl/66gMw5gDWbMCeFxTsWnJmiJx8/tU2KN0ZP1TsgjmNr8Dex1yyDgDUKtsIAOCZdBvzmjC2KjWpAAD2sw4AYH4oi8k8s8X+mWjetTEOeTJl5s1LjefG2OMHeee4vuS8aBAIxVAMnsl3OZNCz1p8ZWNNM4HQlGB//yUOPnurOK7NxCAHn4Q4DLnEJMk+4fWB6782aiLafm+EkNlLRPLFvla53taaSajdtHITresPtzqK65vENtnF/9yQlbWdPUzn/UZlvodH0lnUKtsS1cuYokFFsf0wJpLZ16hdJ0rWfMAiKWEqqtU4rlVGE+admWd9e0RqDugyiXF7cj5liS6T7OB8yhJzNl/AvjXj9FpbCcGpiXgTw+yx/FC5Ov5s0QmL2/6MrpcY+/vIH1ponR8VmgDjQriC7v/7FmatGoJW1cV/w9LFKxV4TQAoXYqhQaPvGDfRDXMGYsMcadXoIoM2Rtak7rSMa5L2LRGesJJ8IrtTdt5nSs1yMni+Nu8C4dgS91/1MhUIj/cFbjDIvFCUeHtfeUe6X8lfJX1Kmu5/K0ZfZRzVNc0MY66eoTFfx8ZdZ4I9otL/naRHmnCOdSDnWAeKz+YDJVhHeaGmKzQXCI+Fmi7bL/xUMjnog84TxVra8AUHuL7P4Xyg0b7zL7XO00SLM2ITlM2H57JyA5uuICKiAY2X04DGfK09pXPNfiIif68IrhERzRm6k5O5dFj+utrAmkcMhak1/2/i/YXJ281W8/6ckEim1rb0LiJSbuq/b15Y4DZe0heY5kNERBfD9Xe78YnsTvn5aZSeLQ0z1AVdpCtnVtBGoEITguYY238/5uI3J92ZbZdSv5K/ipoQE3+YJxmXkzMEfUf9O25g94Kk6f1OeslHyW198+39uVUq/XMnsJCSbj53nJHOuEXpIl0hDCHdzhNtufbRL1KWSHeddqKXHz4TEVFKWhZ1nmhLljuuSuR0QYl0BzReTh9eB4jI9NaZNzSg8XI6u+8J2a64oHPtEW2saPSP62n0j+u5NYSkKyHpND6Bf0BaGJ0NvUsBabzraYPj2+jX+2fo1/vMj/aWd09ERNz5IpPrOSSV91MnUiZdU2tb+pyQKJER4L+DdImIVOo8WuA2nq5FnKJrEackcvk5+sWxhyQxcdyvQky4voD4pZI+FmyfWpAtzSWsnV7X+m+DJnlqnt/c/0BxrCD4ZYi16FOI4Dje77rZajuuCXE7SPvG0t3g9vQ0rL9I7nZQC53zvjV69/ybpv9+kKb/fpAO7H9CE8Y70ITxDrKyGzyH0pZPjA2WJV0pmRrL2nSLknSJeI1VSMA/T+MTdveesYdefvhMe889p1W7eTt8XJL2Ksf6giXdoS1XSzRbfefLacGn9jC5UeRIV4iXcR/ofaI4TkBT093yjsmEl63SngHR1NpW1IT9x9+70ZF377lzDRQN6RKR1twLalJzJMp+2vlZ0U7/dbTUfRotcBtP1yNO0wK38RI5IqLMr5E3uqEmv7gFHMnmCSJxPieskUjHpd8k7y/iarVZeaEUGK/fl0ATE3cylXpb6cjLcOChNG5biC/JaXTs6Ts69lRckubQI1et8+Z0XCE610bCj049l5XRFyFhzOsoS7gOh5+KxoUEG5+WQUdfvpNEpKkEG0maRHo7qAXdCWol6gtKPqooL0RDhx2Ukcsng2/goDsCzBD07vk3vXzJa959em2l8eOYhDJuiQ+4dj/6MG3wHEpeycy/tSbpah4TiUk3M4PPi5GcOF+RdMe/2kaDn62l8a8YAvn50RLKUonLiY+2PCzSbjtPtKX7r31EMt2n7RQRMiufkiafUtNQDGi8nKJC47ljIqKhLaX5b4UmBNaMoIlhraTzLh1+TilJ4u/YkOd8BjbV14xxI18u4vqUSJftb3HGXqsJot0ucSIhBe1WiKLTdHNy/TS7RchUif8xhKS623+jpE9T01WrxKWUlfA6xIwycv25xsI3dq5E9lWICUWnnqRXISb0KsSEYlKZCgHvIrpJZP/2nknLP47mPpUSOrddvJNaWdjRsK3HiIghYCEJt7KwowMPnWn+wWui/pw8XtN2C4qkn1Y50E+rxNrTwiPXaeGR6/TXIWnVCDny1OyL/xr1J+y/vOs2d56aG04Xg0YQEdHxgO50zL+raD47dsy/K735whCZnJbLQki8l955UlyaVGPySRB/STXJNDLtlizBhqael/Sx2PPuDe1594Y7lyPdw5+XiJocQtLld91dXZlX8MjIRErTQUgbPIfSpxTGRirnMqbKE3tNyLmMsdBm0z0X6kRv4hkSVcs4SgZFxEtIVxNyfadvay9ZzpaxnzD1H+ppvo36DPzvchv7Fmhmu1N0LtR2Ta1t6YDLW9r69BltfSpr5io674XSpRoDALJz36Js6Y6F3sirULKi6LxYCf2iqIyr/InypRohJfsNqpTlE7wkZN6VyJYsXhlBiWvxU4MgvA79AbUqTUBYsj1qlJc6Tq9stl90vtZrEja2PCWR+2CzEK0t7WFmpH03ds+M4dxxbEo6vq8ift60LMaZf9HRG9j5O7Njzn6efekukjUvNV7kfSDnkSCUKVO+DKI+x8DYtDZGLRiEfxafAABUKlUXY0yY0uGNKg+Ff4o4oidHncodB6behoqyAJRVfEbvzbyXwugOLWVlojLuICjlCAaZeAEABpl44U5wSwwy8cLnlMMwrTIdxhWZv8ed4FYYZOKJV5HjkJLrjfqV5Hfd53fowh1n5uUBANxiotC+Nh8NmZwbKzs3Jz8T233GY4apLWqXNcGruMvoVlNcTr5jxx8AAMbG1RSfncXalvJeECxKlDQBIPZoEH5qQtjPzmHRpQYTFMF6bwhhUof/PrJeDOyx8ynDAx8AwGLpWfgFxMBq5TCcPqY92vB/HbPfT8Y/HRgPGm/LhaKxwKWWsscGQxsjF+TXQaVWkUvCM1Fjsdt/Iy1wG0/7ArfSvsCtRER0JpRxis+KaUdqVTSpMnmD/v1P/nT0NWMzufhenBw8JduV01zlbLhCpGa/o7fhnTl7rksYo2UEJzJJaOTmX484RCs+jjHo2XVB0xzhFhTJacgLj1zXKluUUFM+14hIpOk+j15PfsnXJP3aNN2Cwj+Rf2W7HdSCXkVOEJ0L7bqa54XFLj/e3HQn6h96GXtJVm6nTx/a6dNH1Dez8xqKCvrCtd2LjtPlvdJk1k7Rym+Fb2I/F/DOdUNTk/UJitE6TqRd07W2u0NLVpwj2133aP1m5rtx/hKzsd1jxm4iIuo0Wbzmaodb1Hc28wZ3+bFhhQRGPHEUnevzbzXssbyt3VDMeqefp09+xknKi+HNoeosSRyAIq8WIyKtnMweBEUY6ZXe8UHMVdl+89ojoaZ8FC9Wgutb+OE37GrHhHqqVf4oXrIx8rOuoUS5EQCAQXuOAwDu/DUVTdcx/p++G75t2rd/A89vfsAvQ9sVaO4qz+kAgBx1FmzbnCnK2/pXoaYcFC9WRrdgkV+X/w76pL5Gs8pMWLucphuR+RHRWd4ISHPChIb8G9DqkbYI9Y3CKR9brdfqc98eravXhX3HsZIx57ggdKnJaNI3wz2w49MDPB+wBM2vrYf3iPUFejaXhPPV4jXUAAAgAElEQVToXIP3Ed8XwLwJZaiYfB2sH7YmVJSLF7FH8D7xKpY0u4+k3Ehk56fDqJx2v2chOk+xg8sJXvtb43gbPTqY4bqTJ/YuHyMZ14UW19ejS80fcPinKWhxfb2szASTTljdehAAYMenBzgW+Bqfhq/H5VA3nApyQaniPNcEpsbCrDKTvvFCj5my6x0PYfzg89R5eJfkzGm8clCnboY68yRK1mZSaOYnjEaJGpeFIsrBA9oYWY7hgyIaUmqGsp2tMMhJFG92CSvm/n3XiWv/a7AcuVNUJ+7ZDTcaUHdBgda6GXWGa/9N2OApLdnum+LMtbS8RIk82z4kPpTMfZdwl2u+KfyGZEaetEaY8NoZqhTa6z9bVoZtmjgf+jcFpPKa3u2IjeQaz/z7uideo92+4oTo0SFx1L/y79S/8u8UFfSFsjNzaMOEPZJ1hZpus6vruM9mV9eJtLfzwe/o57s7RHJyWOw+joLTtYczs9GE+eo8Ua05YVL3mCx/LvKRxZOYfSKZAwFTtF5HiPnbLlKnybZcI2I03d9WHqddZ6X2zqzMHMrKzKH+zVfRIdt7REQ0rb+NRI6IqPm1dTqPNeUvhbynyIwknbJK0EfbZTVdVdJCJZGi814gKppw4MJCc/dQeP4iOETruL7rGzpHG1IFu63PbrhRSiK/2RSVKnXwN7W25XZM//bm8xGfC9NePsjU2pZ67D9o0L3JucQYgo2ew4iIKFMlfo7Tweu4YyFxEhHt8ZtJGzyHcp8bPIfSwUAL2uM3k+tjcfQzswN+O5J/7XyfyPxnPR+6hTZ4DqVXccr5Cf7XEZsdSbv9mV18XaRLJF9pQ66WHIuknEjZTTkioj3v34iCVEz3y39HkjU2Glc73KLRS49Q12ny+ai3L2d8dS0n7af+zVfRkqni72xGXo6ILL2SIqn5tXVc36MosUeGECzpNr+2joY/cRA1bQS8zmsZrfNaRos+zNTbzKAFRbGRRgiKMMYPdaMLXUWiqGC2w07WoD3t4mWMbNGcOz/y7n2RXc8QCO+tUtXy3LHQtMCuKfccbKa1lc346/5aT/7VSBd2PH+BM+4eSPu6phzO/mZ4KPRGr2GiT4DfVFJRHk4ErwYA9Ko1STQvR50FAEhTJcluQgnXm/bDNmz0GiaSa1+tP7Z6j8XK5hex0WsYfvpulOw9/N+ArPxMnTL5lIcSXytUCKto2Pj0h1klcWbAXrVmoUP1UQCAE8HzMMXEQXFdv8R4Ufh14ExLXPb/hNGNmZDfzlPsYDWjP4b8Ig0BvmT9O3rM2C277p9LB2KLxVkY168B4/rizWjWnPBp+HrJeZ46Hy2ur0ev2k3Qx6ipaA4rL8S1XnNl15bD+hbbATDmhVLFSynKFRraGNkQWk/LSxc1IqLxb/4UNW3Y+MlG0nRB01mZ/ZTTcotC09V3ndTsbL3k2DDCY+/dFO8hLSdHdkwJSpquppO3qbUtuUdFy6wghuWg7bTm192K43Kv62z/Fq/RlJufRRu9htMWL7HbnWvCLXL6coZcE26J1tngOZRisoK0riv8TMr5Qhs8h5Lqa92qfQHaK+YOW8z823Sc+u8kijn/UPy39Q+LVZTVvCf2PDQjgHb7r9bLvPB/A+Ky+aT5ra5vUJTT1FqbX1tHalLTmSBXistOo+bX1tH54Leixs45HPQPBaSJTSysdvs09iGFZYQU9jGKzmWMRVRWIIzL8bluI7Oi0aSSuK7X2S4H4Jnig1ZVmmlOl8Cq+WL85jwTpzszCc2LF9OdX11OO9TmyqGkqRbK/aMQMD/M5HSd2l55U63trr1Fdn+GrDPgu5m4F38Aa0/MQZUaBUsosqrFJeSps9H9u7HoVWuiaCw8wwej6i1BpipF1M9qqIOMZ8uuqanBVi3NbI4U18jH3/EP/m8tTApTo0oF7rjTNDu4HrPEEMuDuGX3p9Zn6TTNDs/2/yXq6zFrD1yPSf9NO01jru16zBLj+raDWk3o8oe9rKzwPlyPWWLL0YdY/Xs/rg8AjMs1wF+NNmu9v/923Ii6hZtRt6EiFY52PAgAOBl6GpMbTJTIflemokgjVdJONTVb9vxVbCB+M2HcWcc1/FEks+HjLQCAT6o3XBOd0bl6V/xuwrw9NqvcArPfT8Zgo5HY4rMG/3Q4iXY3tqC3UVPYdhyN4PQELHS5gBt95hj6+CIYRLrrvRif0/Utr+PA58XcsTawhHss5BymNRwvGlv/yRrrWywDAJwLYwrE6UO2SuSp2V8QstJcQ9vrf2Ggz7qBSy1htsNO0YyiuRaLiJRUUZ+h954Qk4x78cxO7q9NmL8ze64Jba/xr+Iuo1ONwQjP9JZ4B3ilPMeoektg4zuZW+do0DKk5iVgYZPD+LH6IM5csLblDRAIH5IeoH755jj42VJy3c3eo2DVgvc3fnvEUkS83HU/R3OkyCI2MU3U53rMUnR+xfoPAEC5Mvq9croes8ScbRe58+LFi3Frnt40WSS7Zt9tmHdugjX7bov6hJ/ZP53AdJPlOBy8XZQZr6iRknkDVcrzJhrP8LpoVS9CclwQDDMegmHGQzDVdbrec4Skutf3KeY37cWdKxHxpVA3PI1hPAqu956LwDTGT3v4E0dc7z0X13sz5oZmlZvjQ5IborL4IqE+qZ/wT4eTeJPwgvNcKF6sOJpVqQ0AMKnImEH+8XuB2U2kFSn0hd6ku83nN70XtfV3xOLGc/Gb80yc7cL8Z9UkXE2Mrz8K16O0VyhgMaSp2JXllq+fbD8AXPb6BEBKPGY77OC/xALFtaSFVIKhtl2l+fqQ4Zu5s9DVcb9O4i1KTGzJ/BA2atNAkWzbz+FTOLrts5D0u+3jSXGn9XcAwgDYc/IDSu6Fq28YBpTcy8lViZqM37u34s6FxFoMxdC+GlPdYmVzntA05Wab7eGO5dIeCglVqHlqaqFKWikg1kyVxoWfLkctUawYs2ZAeJxIdmzfdmjTSFraavOcwdwavwhMsoeDt2O6yXKJfPOrm+A9UlpJ+X1CGDrUqI+ozBRMrcTvBzzMP49Hp56j76RfuL4q5YcZRK6pWfeRkxeIkiW+5/oiEi1Qt7q96Fy43vFOh7ljOS1XCfv8nolIVw6sXXedO/N9MKv0PbLyc1GuRGnunMUfJrMAE4B4r1iOaLvW4AlVpc5Hi6pMwJZzXDAyVbloW13/ihxy0Jt0VzQ7KzrX1HCFpoXFjZlfE5ZwlcBquSx0ybPYOZSPJDPbYQf7IYNgcesObvn6SYhp+V1530QAsoTLztdGjHIEriSrCVbWRyPaRQk1K1TALyYN8Tw4RJF4hX1mO+xQt0plOM2codf6cihXoQyuhvLkxZoahChfphRyVfkoWYJ5M2k/xx6lS5bATy0a4vWnEMmabvss0H6OPUoUZ+Q7Na0PVb4anebv4kj70nMPjBKQbmEx2/oi/lkm9pFlCbPTNDuMXHoY8SkZ6NyCyde87fgjrJjat9DXZdcXkrLmueY9Ka3Dolnl9ihRrASmmyxHaIY/GlRozI01ubIRfqPWyq7RoQZTVt24fBU8zD+Px2deos+E7nB3+iQiXM/wunofC0m0cvkBKFPSlDuPSLRAtQpjRedFgbENOxg8R25zTdiXmJuIjZ/WYGc7aT0+Fh+Hr+GOu9Q0waP++v2/1YZ/PYk5i4UfeM15V7uzWPjhNww1/g19a4mTR+eTCpbuk7kgCiFYAhvarCksbt3B7mFDYLbDDiWKF4ff4kWc3H/KZquJgpoqjowZhX9cXGHz/KVWjZddPyIlVeu4LgQKCBeQNy2UK1Ma5QSxDSxxzt8rHxzj6isuMBryJQmj1h/DlfXTuL5OTeth55Xn3PmiUTwp3HH1xaBO4ppgQrSfYy/SuAGgrYwG6XrMEnO2X5QlwCtPPSSkq40staFD03rYf+U1RvRshVrVK8H1mCXyVPkSuTaNjEXrh8UkYcyKo1wf+xmWGYjNLZk9ACHhsuh9j/ESeDJgAQCGiAEoknHbni0Q4R+NPfMPY/sDhlj00XCFJPwtISRLliiFXgyaZLrQ9TzmNe2p9/p7A+wxv5GFVsLVB6eD32CiSVfdggLoRbqDumwSnd9xtkL/jhuwzZEpJNeuo4lBFwUgIdFd7c7i0Rf+NfFC+CGMqzcDJYqVlMjOuHwVTkFM4UUhAQ1q0hiDvtpBncPCMek88xq6+v5DDGzSGN0baq9A8S1RWNvw7M6dMLtzJ71svOz1NGXKl5baJDNz82T7WchpudNtLyAhNQMjurXE2kn99H6GC1ZT8NsWJo9Fw1rVsGZiXzSsxec1EJJsUWD2yG4Ij01Gve+rcn2ar/4sqWlqm7pMCNrQaZodOjSth1mjfkKPWXu4DbhSJUtg3YF7CAyPU1xXSLhC1C9vJiPNQI5Ylci2z4Tu3HHdxkYc4bLQRqqt6kWgmAZlBMWOkfT5RsnnZGk31x4fHJkfxl8WO+K57VxZOU17LUuw7GfrGxuRT2qUKFYcHsOY53wU7YNdnX4VabKfhq9Hv4c7EZOVgroVqonW+LW+2IVRX7S9bYWdP06AcblqaFy5Nn6qqfx3UYJepMuS69JZx7Bj/zSuf8VcJoHK/bfrDL6wNmzytoBVc94uJAwXBgCnoGAUAxCgQDxCsnn311z8uMcR5z08uf55128adD+aBKbvRp7wXq5NmYiWtWppna8Nx8aORveGDRTJ9kEAXx24bpXK3GaaUN5j4V+SeWY77GT7WbKV03IPLx6Hw/dc4XD9FUZ1b4WWDWuLxjU1Toe/RsGszneoXqm8qJ81JbBaqtPHz6Lxnm1MRedD1vD2wFub+Q2ZT6FfROuw+NXqOCqXL8tVzwWASQN/xIJfGXIXEm3fTo1hNZ2viCxn49Uk4j82ncURK/Fex+UnH0Ubac/2/4VO0+zwXdUKuLNzFjbMHIBG9fiK1q8+BkETmn3d2vwgkWEhNC2oiVC8WDF8TovHoIeMBuc3aq1OrRcQa7lyGi9Lxi3rhYj6f/j+ksi84BleF02N34rO52m8/XxJTkfTet9DDqEZ8bL+tkKwRCuEJjGzeNhvkUQWAGqWqSnbrw8WvWPC7/d1moquNc2QnZ+HsiUM8OvV5k+mzQnN3zuKTh5wIn/vKDL/cX1hfdoKBVNrW7rrqz3lpKZPry4/WrnkxUrzChu9pibtEXOm1rakytdewUB4j6yfrua9a5unif41pH7V3f/YRcdv8rl+H3kHcscdNysnHPFy430eF07YRyM6rWfCQFuuolWzjtK+bbeof8tVdGzPQ1G4tBC3XeQjkEauP0ZH77tSu9l23CcREyEVk6BcyqfjVFvyDOTTiJrPd1T03WX7Ncd/36gcij17q3x1BG1+unLXIGLCf5d/nKh1XkEgl+M2LH4u1zzC6ojONZGSeY+y8wJFfR5hdSTnbecwfxP2Uw7t76wSNc0xQ5Gbn8U1FkFpzhSa7kZ23v0oNF3eN57Fm7gT9DHxFteiMr21ystAkVd1+2cpoFEzI9GnNtxy8Ua7ufZoN9cet118JOOpWdkAgFaW9ohISJGM91qnvMG2+YkTAGBAE6mdSxNCDdN1ntTX7rjbB+71nUXgUkuRttipnmE2rdQ8vjDlyFfzAAB3o5+JZBrpofmyG1By0OZ/XFBzBqvhDviO3/Ee268tHC68EMk1s7JHi7U70bBGVShh8RT+72fa1Ai9h7RF2XLMjnJIwBfMXs5sjIYGfMG7VwGK67SfY881FlfWTcU0c+Z1dpp5R07T7bvAEbWqi/2Ld5x8gk7T7JCWmQPXY5ZoaWqE6PhUdJpmh/t75og8G2ZtvSC7wTXE8iDXihKdptkpbqgBTHTfko+/YsnHX7kd93dJb/AhmdEq57oZ9ro8sMkK1KpTDUnxaVxfjuozvq9iyTUAovMclfhNJDHjLBLSjiEqyYprACTnrEmB/VTChIY/oXXV+ij5NSFRh7ur0eHuau44XcXwRKdZuyRzey3cJzovVbws14TFYR9E2wAALofxHiCHA8VufCxaVxuMGmUaoHW1wTAqpzvWQF8UaiNt0p89AOg2L1gd5z0I1hy/h8GdxQ/QbfU+eNoxf5CBW47A084CDz0CYHmMcWT2sLVAK0t7TkaOZLS92gPAgp+6YvfrN8jMZfKuVi9fTiL/Npx5rVrftzfWP3oi+yxnxhtWUXWq63Jc7caEWTp2WI+Rr+bhwI+bdMwyHNrIlX1mQyAkW9bU0KFpXbSW2ZwyqlIJmXkqxbUGjumIG2edocrLR8XK5fD7QnPMG8u4ip1+zHz573luYa7VajV3LMSgTk21bqRpmjQ03cXuR3midZ+aWDrZEm1vW8F9MPM3MPquMtrNqc7JsaaD/SvHSfqU7LBtFtmLzj/utMDrGOa71GvNfjzdzOegbVSvpkj+404L0dqaawkh9NGd6zYJNcvUwo/VuqJdVcPzWt/12ybp84/uITEtaJoOhONpWY8k8gnpR2FcbZPoXF+cCXkNAHg/kP/7vx+4BR3ursb7gVs40nXdvxD2F5/jjVcI+nRohBE/t0KVisr5nsuUYHJYh2V8QOniFQCI3fammzGuYnv8huKvJozpMSU3BgBwIdQSFs0e6P0M+uCbeC+0m2uPAT82wdY/Bon6PzhaYLrdBdk5d9z8OFIFgH6tG8HTjiFbq3MPRGMswbiGR2DCuQuyLlyam2YLujGk23qXeGdeiL3Dh3LHSqQLAPYvX8HhjYukX0j8tStVwsvZf+JqNweMejUfV7rtxZHgS/ixekscCDqP1c0YTZv1EiyoRqqPfVjbMyvhXvwBpCVloFI1PoLLpE4NjFx8WJSiz2eTbpeghetGSPocLs6Xv64M4RYF6lWogeZVmB+M8iUZLTsoPRZv4sTa24AnNrjXewlGPtuNqMwkVChZBk/6rdC69sedFgiPT8YY65Po35bxFT+zeAIAoG+bRjrv7aozk9h9/bmHWD9eeWMyLodJbF6uREU4tj8Fv7RPCM0MQkjGZ8U5/+1Y6X4OphVrYXObcVjzUZ4bWJT/6m8LABZjf4FXUAw6N6+PsqWkNOYSfwadv5sg6nNLvIIaZRrKrn04cDJHuADgnfIQ/Y2XwqLZA9j7mBct8WqzPRhqxCAimrObz/akjy1HCJsbz8jmhjQVXEuFhN6m1rZkZkB+hEcBgXrbXjXXGXLsBHdu9+KlThtst30HCnQdTaTn5BhkL5bLvaDtGnL9D86+psRYpu5c/xp/0oOzr4mIselqZpMSlh/ShW4jd3Cf7LEmtjnc03s9Q/ApmS+T3ebWGvJLiabbEe50Kug1zXQ+qnVum1vSunua6LF6H3VZtoesTjPJzPO+VhFeeuy2RLb1QjuuERGFxiZJ+oTwSn5LRETnwvgsa3PeTyTfVC868HkXnQlVrq7dwGGHqBERdT95gNY+f0Rrnz+iVof4vBpy9lgiophkG/IIqyMaz8kLkcgL5yRn3KTsvCBZGU3EZDHpOlnbbVHYdFk8jpbmDXkVe1RRPilHvlZbAVC0qR2F8E31oneJb+hNvOG16Fn03cCQxPBtx6nTij3UaQWfm1T9NePcoqM3RHOEm1xsUpiFN26RqbUtJWXK17MyJIWhXPXPoibdDnscyNTaljJzcxVlDN2kUyJdbfKaYEnXftFxrrHQJNmma+xEnz0vHqR+lw/LXis2gUlkIke4bF9hSbeB4w5q4Mis9SAogBrtL9oKHHvXX6N1s5m6eMKKtJ/CYmjKznMc6c5yvEwJGgU6iRjCDf6SKCHXtwHh9DYgXPaai93H0TafRZL+BR+m0Y3Ii3Qj8iKt8FBO9HP2kwdHuN1OHKDodEFCmUPKyYz0Icz/D6KnHwPluot2Iy1XncsZ7ptUYlK6nQjdr22KVjxcy0RPXVs+BS5b58NlK//qyQaN2U8bKpoj3CRqu2svzHbY4ZavH5rWrImq5aT2HU0/2YK4bbWoJe/mUhBsc3qO5K8biOVK6eduQjlPmc/ME1DH9wdUAUzTgsKELC+wmYRF9lOwyJ5xGVxsdw25ubzttpkVb39kzQw/12mIJtVqwjkmXLRW91E2qFmdsa317tZEMvbyyhLRuSYaHNoh6XsaLnW3mtu+M0LmMGv1MzFDbn4+4rN0p0aUQ17meWTEi6tJzFs3HHOthmFgE7HJoXm9Wji+kHdN+2fOKFSvKHaRAxhTxPwD11BG45X4R7O62HLxsex9mFRoiuVN7bHk469IEyQIsmi0BkONx2Co8RjFZ2joaIMVTvdxaSTj2vZy8p/IV6vR+jBjcvKYLnUXZFGYXAtFibEbT6D9HHt4BkcjJSNbVubX5svw5p4HAODQxqtc0weJMQXfJGs/zx49W5vqFhSgQKRr678RtcsaY6M3E8bboVoXHTOUsW7TNd1CWqBpC/WNi0MT252iPpZ4PBcx0Tqv58wU9euC69cNtutTCuZQrQmzHXY49PYdAMNsucXK9II6phmgTkbx7+6DVAFASd02Q0PRb3xXVKtZGWwlJ3ZTzfVTGCqW58PQhPbcthuY/8THvd1g32MwutSuJ1pTSKobFw9FcHi87JjcOQBYtO8Gu/ev4BQeDL+keEy8ewG96kn9V/PVatH5+eHiHMF2Z524lqrwHzg1qj5So+ojO3ULylaRbnpO7bUdd/22yW5GdTWug25jpD8aQtxa8ztcd0jJ7urKqbLy88w2cMe3o6RFUue6TcLWVlK7vV9iPPr/wHw/fjSqA9+EOIlMTr7yBqgmjoccECWIYWHn+Qx2nrxHTqbK8I1bbYhPzQAAtDIxwnNP6Q8tABiZ1ETXAa0BAK/uuCPEJxIz1o7Ua/3qtX2QHKs9r4MQrCdWu7n2cHMwPMy5QBtpK5tK08w5tpd+GXShl/l2PH0gTd6hDxrtsIOwuhtLXn0PHUVIUhIXGMAS649166DcV+3i+4oVUb18OSRmZukV3TXhnLyBvyBapCHZv+Si2IrX9oE6pjmKVWR+QNQJ41G8xjm95+sDoeeCEC8OL0CuKh+lS5aQjLmvY0hkZ4/BMD1qg9DpyyQyhcGi9uJE3Nu790fDQzsQMmOpqH9l1x6i887GYvKfOqgj1Grmm1O5gvyOd2VjJmRZlfMcID7pu0qVj5Iyzy7EpbsfUKJEcbh5haF9y/paZfXF9ajjaFaJSf852Jj/4fdL80bDCqZwbH8Kc90mSf4PNqn+HfYP4KtRN63BBATUqVSZ03DLlJCngOCMz9jhtxGO7Y9zfVMbzsTBoD348wfxD8a0xh1RvQyj1YelJ6HXbUc8HTwX9SuKqyjfinqOIcbiqEMV5XMuYkp4asO7dw7t0lxWZtDk7hhafwFuhu3GUWfmR4o91wdVv3+qlxwgdX2bsuMcTizVntBLiEJ5L3SeLE86LictuXGXk5aSTxYFJVxtxPVoxu8SmUnt2mJ9394iOdd5c9DYxh5qjcKcwnm3p03hjt/9JQ1Z1JUDQan/5tTJaPZ9TdkxTciF6Bav7Q0AKFZ2EIqVHSQZZ1GqhPYvsxKEUWhDjOfiVhQfn65JuJreCyPNWmCkmbSKAAtNU4IStjnex4q5/RXH61aqIiFcfVCjSgX4hDARbIMWH0Ct6pWQlJaFV/sXSGRLlhETBEu4chouizED22FgzxZ45qLd7KOJ9nfWSPrcBjHKzXBjRgMWuox9TveHWcUm+JzuD1v/jVjcWDnarCAwqWAKx/bHkaZKQ6WSlUAgFEMxjnBjsqNQuyzjDcISLgBEZzF+v3UriP221aSWEC4AjHy5CDd/5rX07PxclBV4KegL8/FdYT5enANBF+Fu/DQJa1swP1QhiSvQsPo2xKUz0WY1K07QNlWEE0vHg4g3heqENoOvvobkIQukm0adJtmKmrCfxeAR8vWT/hugUstHgF0Of/zNrvk5TX4jpSC4FC4tCa4v+tf4k1aMsqNN0/bRrO7raVb3oo84zMjMoVwZz4f8fDV98ouSmVE0uPbck2uun0Lpx98NjyQc2W4tERH93tfwsvR9H22VtIJik/dy2uS9nKy8LHQLfwM8Dwum5od2cufbnA3bTB/yfD49+eJKQ55rr/ZhCHr13ir6VMKJ4C2ic9fQBtwne5ydF0pERG9DTQtyK0XjvZCnlncPkiNdIpKQrfBcF+TKy2iTLWoMevYX7fA5wZ3HZSfR/eg3NOjZXzrnKhX5k8OwF/PILZEJMXwV94Hr04abkUxFZCvP3WTlKb/7LFxjxluGJBZ92EorPtpxTQks6c7tsZFcHngoyuWqVBSflqE1BPjfxPg30h1+XTCEdGcOsiXHjde5duPUa4lMUorUY0EToenx1O62NAR31Qf50GFD0WCvjc4mlFVaw1A4R4bRwIvHZcfs/U5ybdgLvhI2S7jsZ2BamF7XUiLVGX8e5saFjYjI1mcu2frw4cwPok/R2VDmOd0juhARUXjSNgpP2sbJvAtrSvnqDMpX83/XtnPsuJaZk0sTt52Wu5WCl+s5FXoPkxoMwOhXK/Fr/b54l+gL43I1sKixfjaMlXuYqLLenRrjiau/nvo3MK51K/zdn3cUN9R+OrT5Ktz0/hsAMLDxctz1384dA8Bd/+2iY03c/mU3dvufxdz3WwEAjh1Wwrx2FxwLlq+UcDXiKc6G3cPmVvPQuBJjy1vibg+f1GDRmpq43p1P4v3Td20lfTZ+R7Gkye/cMYsh6IEapatigFF35KlVGPN6kWhe6a+F9XYHnEKrKo3wOt4dQelFuxstNF9k5eahnJZsZYVB65tr4TF0I3e+4O0Z7O44ASNfzeOi/QBge+ulSMhNRo3SyiHJHf+w46LVQqIT8faIJX5bewJnN05RnMMiPSULc6z41KPDWq3B0IniV9qqlcvjyWs/nLrmiiPW8uGln9Nj4TZoMwY9tcGdXoypZY/fA2xpO1ZW3lCEzFusONbQwVZ2XKlfGxr+w2wYhsxewh0r4fEXaTARAJzovAWx2Ylw6LAKAGBasZ6snD7o3Wcbnjxewb89i1IAACAASURBVH1qwrKpuABnv9p8EvUq5Zi9gLpVxSbPsiUb4H14c3SsHyJ7zZ8W7ZXt1wptjExEdDLkLhERjXq5gjZ4HSZrn1M04Jn4dUaXpqv5aWN/l3r22yY7h8XKew9E53I+s/powQMaLRN9EhGtnKpfiXJWq2U1/Gex77kmJytsRESfUj6LmhxYjfRo8FWd97PaY5dojtw6LMa8YrQ+h4Az3NiwF/O4lq9gPjEU7TYyPtVnXNxlx6MjjCgr8zolxI2hnBwmWc6X6DaixsqxLSWJd4Y/4O9ErW5Y0ZSXh6jVDStKy8smIqLHX95IrrXAbTNZee6U9Bc1dq4pWLn3cyFvKEMlLjSqqfEOeLxd7/XmvJ8oe6wNmhqsktZbEE1XCWpSizTa57HvRSYFpWNt0GU+YGX0kSMiCk5gfK79vkwhvy9TiIjIPaIzN56UyfORpqZLxAfDCFB480J8DhM1kponfX1SIl0hth15yB1nZ+dSz37buMAHOXTc60ijT53hWkFNCCd23qf8r/8gebkMeQ5pvpIbP2pzlxvXhHuSH7kkeFJSDpOt6njwTcXr3Il6KWqFRXRWHL2Ie08v4t7Tu0QvSv1aYZmIKCSDj676khVPRFLSHfmSeYW7EfmUGxv/ZglnWtBGuv1r/ClpRER3X3nT3VfibEtsUIQuZGfdp+gIIyIiysq8QWo182WNiTQhIqLMjMukUkVQdIQRpaftk8x39HtCREStbljR2WBnva5ZGOSr8unvecck/f2rTucai6wM5odg0Hd8ZrbJzhtosvMGMndaSJfDnxIRkbnTQprqsonMnRbSLn/elOAS/4lCM2LI3Gkh+afyr9fPYj/Q0OdLFe/xdtQVIpInXH3JVHiemJVJryPCZOWIiFJyfCklh6lGnJbLBATk5adRem4w3QvpKJEPTD5EufkpkjWKAvqS6bfArF2XaNauS0TEEPCYTbImlW8XkUakfSNNrr9nv23Us982On1Wqq2w0KbpGgK3V/40oNEyTtMd2dZKb02XRdexzBdw3vrzNG/9eZqxStaG8/80tJFvTjZj+0xPZTT16Agjykg/QRnpvM08MX4CJcZPoOgII8rNecf1t7phRURi0v2WyMoTp5b8rYP4ekLCfXH9HdeIxKR7OfwpmTstJHOnhTTw65uhudNCmuH6t4R0F7rZc+NWnsz/pT9cmY2eue/kw6WJtGu6BSFdIUZclH7Hbwe1oNtBLSgnP4lr4WnXKDr9ATfGIj7zDdeyVF9Ea2TmRUrWNhSFJd1XISb0KsSEEjIekE/sLPL+Mp28v0zXPZHk0xp0+muXZlfBbbpbF56GWYs6AICsjBxMseiPa8deYOCvXVCmHGPDu7mLL1+tUichOfMJDm6/jyrluiM0aRMaVOML5gldxrThvn8A3KOiZcd0ZRQDgEdX36PvyA5o95M4eODKh41YNe2QXvegCbdP4Xh9wTC7138zKPsW1Gm2KFGT91FUxZihZO1ALbPEWHrxLnaMHag18U3pMl2RGDcSubkuqFCJcc3KyX4EAChfgbF7VqtxGjGRjAtSQtxQ1K4TJVmn853NqFehuqhv/+dlmGVqDQDIyk9Hua8ZpfTBD7uY71HQQkvu2Gsu74O6f+M1ON4X+xvfS+K/O6G+UZi4bCj2Lj6F7sPENbz2f+aDfvKJCdi432MnPFM+o3yJsjCtWIcb90kN4Y5dEphCqoc7rgKBEJIh/38AAOefCwBNK7XU/cB6oqGDLdp8X1t2rESxcihdvCruBLdEN2Oxf/ggEy/uuHq5TngWMQQA0LPuHa6/e53LiEi/hkZVeRfMmIyHcIu1QLWy7dDV6KTiffXus03xXM6Gqw0ta51DaLI1ihcri8TMB/ipgXzQhRCD5+zD7X1z8N5BmhjdZbfU5VAR2hiZiGiAGf96M8BsKQ0wW0qj2iprG5Ep+8g1tAl9jDTX61fjW+HEzvs0w5zREi4dfib6NETTzVerqds4RsuOiEnimqGwWMtoNhNmG6Zld57IXPveKx9Jv7amD1SxvUmVMIGIiPJT9bclsngfymss+poZihLhGX60xmMErfEYoSjTbC+jgZjstOXa3Nu8mUjYb7LTljK05MEwBKzGeiz4Npk7LeT6c/Plk7QTMZru0OdLuGMiosQc5UTs2qCvV0KDvTZ0J9Bfog033y/1irkd1ILSc4PpcVgfIiJSq1XknbCdotOZt1Kh6eBT/N90O6gF+SXuEa3ByjhHTSPnqGlERNx8Ocx+t5b8UoMVxw3BqxAT7jhfnUP56hxSq/M4rVcX+k7fQxOWSU1OClDk1WKkERygyckDGy3D3QBrzBu2E0E+jPZRoXI5XHq/QSKcr2Yco90iOqJMyQbIymO8FTo3CJbIAkxEGiANktAsz6ME18Tn6FSdcbjOVeegdPEyOmZ8O/wyfAfWLx2K3t2bSvoBYNTg9rhy2w2jBrfHopl99FrzhpMnhvXkq+N2mWQH51O8Rp+QkgHrI9J4/e0WwyR93wIxqenotYNJ5l2rckU4Lf1Tx4yCYd3Ha9jQhk8PucvnIRY264eITH/s/8x/dza1Esfas9ori6CFX8s13bkFh0FDJOMAo+mW1zMXxn8abBTagy834Z/mg/lmuqMAhV4KDR1sAYi9HTTHhWN3glty2mxCtitqlO2EO8EtYVxxEKLS76BnvftwCmcCWn6oMg1mVWfjVdR4dDU6gdIlmDeUj3Er0abmVtwJZjTzQSZeiMl4iNoVGE+llJxPqFKGCa7Z7nsQy5v+Cf+0EDSu1JC7j0VHb2Dn7/x3PDtXhbKliyZLbYvlfD6RyuXKcgUWAMA4oRRKlSyB8QPbY8rwzpK5HY/vw9upXPScYqiETtI18J71wuegWJj+wCSPSU7JRNUqTETLx2RXtKryIyzcJ8K+7Wm4Jb/GzcizKFm8NOJzYvBdmdpQUz7WtWBcrxZ9mICd7c4U6l6sJjhg05l5hXugr3jy0hfrdzA5OU85Tkf9OtUxZf4RJCZnIjUti5N7fp2JpPrz9FX4xMTh5eKZWHfrMRp9XwNmNWugi0k9CcGyEPZHfknGS3fxa5H9SSfJvMS0w4hPc0SFMt1Qp4Z+YZFKOBnQBZMbORdqjaKCkHRH1V2AdtWU4+d/2GUnIV2b16/g+FbsyiRHumYXNiNwHB8xNubxUbgnRKJtDd5EcKnP74V+HkOgWSnipxo9MKmB8o8eS7AmVavh6cQ/JOOmjnY4OHgEejfg81lk5OWhwn/hD9D1t58wvGML3HXzQ9WKZdG1sTh39tQ9F3D8L8OKDbAQku6n7bzJLDwhGXOszuGW42x9l1Ik3QKX6ykseplvxxMnH45wWRQvVlz0CQDxOTGiTxYTGjD/AK/iH+NVvHyGJhY52U4AgKhIYyQk8CF+7556S2QHGs2TNFWetHy2EF6+kahZgykP8/z6UtSvw/yyn9j7B26dms8RLfvJIleVj3y1GhuG9MGkTm3x1J8hUedTlrj/ykfURlseFhFqTl4+OrZoIGpntjEhoz4RP3Cf1StNhyo/DmlZ90TXPhnQhfskMHbH/9PedYdFdW37ZQsaE8sz91miokaNPUhiSTTXkqioMeKzk8QYY+xBUS9EJGLDSNDBDmpAJYqoRKwUKyiKdEGKShGQ3odehlnvj+0p+5Qpit68d+f3ffs7Z7dz9jDD76yz9ioJJeI3DP44YZvUOA7kmZ1RESj1J9MZJlc2U8e4UhJ0pevbfWHbYB/YNthHI+EyEEq2h8JDWSJmjnyMviz9gPL+4gdInmMH3l/8wBYAgK2htyCtrASM3X9nx/LPpep9T2i2P2fGz/XzgtHnDsNcPy+Y6+fFxlk4ZHoSzN+fC/eLgjRdBtJWroO0leskCRcAIGXFWopwAeBvSbgAANOHDYTbcSnQ8q3mLOEOWcuRZZ/O7zXavUqraiBPWQHdOrSDotJKuBMpvd/Rw0WznTIfOpGuZfBFWHPvEkQUZEJEATGwP538kO3veYo4EDRISM1M39f+x2HCFeLTHxaeCrev2cD4sXRItSGCtCMftx+ldW2ro+fD2ed/wNnnmjfHVKpUqK8nod86dNAsHW9wXQR+OQepMq27ZkX5iTMhsPIXT5ZUrbd6a1373eQ0KKupgYHb9sJKr0sQk5kDGyZxAVsmjeoPzqcCYdKo/jBpVH/Iyqfzx/Xq2oEqFr+cgF5dOwAAwIfvk8/avysh8dZGI6BfV9o5pcmLr39Kt2PQBJpCXPFxiCzcC2H5TnAhbRZcSJsFyWWX4dOOxHCdL+FONyZxAP5MGglPlefhWXkAiNEECmviISiHbHL0s3eGawlJsN1X9+AiQy5vAvWLjahB7d6HBwUpMKgdkTB/fTSDKpowa8BAllg3fk7+xqmr18LY4+7sRlrq6rVQr9b8cAUAcIy5CU6xt2DYRQVbAAA2jRgPPdq0h/RFml/zGSL1SIyS7L+YkgCpymJIVRazbc+UxRA0awl4ms2FYR3fp8b3fWfASwWc0gelyioYO5l7YMxbyIVynfyPZXBsu3S0wE+viTe4pNrOZNyDT6/9whZmHL8OABB8Ix6Cb8TDuEEfgEnnjlBSRPKfxfIyy9jNouOsvAravd0SOrZ9h5WAbXZfhFNXwkXj0pav15l4dVKE7Bs9XdRmG+oH83ubsKTKoOep30Dx2TSY0ZPeTT0w2hy6v0M8hebPHQm1tfVgZEQ/SZsIJHKm3qqZOC4pg71DT8P9wptw9jlJz/1H6m6qf3EvopNq3rwXtGgxRPY62uCXcxC2LDwM9seXSvY72dMxTX/fJI5xarmY/jE8ttceFq60rFqyfeS30hIS0y5UMRj/9znRWEa69X3+A3zX5wFEF7myxFpenwX16kr4L6O+8GfSSOjd5mtIKBE/rL7r8wASS09DC2hNtZfUJkN7o97wXsuBYPreSvjU0ZXts5siLZUGZy+D0V1cITxvA3RoaQK92pKwjD/3Izpw1xG0h9eUzj+Cb44b9G8zAiyMf4HS+gJo10I6tfbvE7jgOV3e5RJWBi4kkh9DyG2N5HNtMWjVvAVYDvwn/GvIq/9zM/frdcwJUn8gD+z332kLvdqSNyWGwMPmiQMuMUTbo7V+8Vz1RU6uEjp3aguBfmQtf3qFwNQXYRQTwlLAr8AVTjkRz1N1A/lNNW3WlCLPkIk7wTONS2rKnFv0+JxtC5m4kx0vbGOwfZ0XLF5LvstmzZpC06a6RpnRH5/8egCWf8HpbkM8NVsuMXGctULTLhuzDVdUU4k9Tu6gtuZ6nNyBo30OYo+TO9g+lVqNo3wOYoqykB330VkFHkl4gOvvX8H1968gIrJ2ukx5E8jK7IzVVVcwK7MzZr0w0kdENOskTi0ddCFC1IaIOLPvute2PikIrRA0WSU4HJXfAZaDx9MRGuuNjbLqGgyIfyrZF5A+De9mLUVExL+STfB5ufYMEiq1Cu1izfFUmmabzSXhv+KScGJxszzCHo8/O49qVKN5sPi7Z7D2wQX84Mw2UUFE3BsXJNmuRsTubo7Y3Y2zBPnwBG3V0d3NEW9kJKOxmyOeSIjE6Zf/xKGn6B3+k4nRGj+PU6R8YBmTtZxH3u6LXOorey/9fx98qFQNOMaMfC5lWTUutSQ21vGhdNYEn8PigFAjA4i3V1BePFVnjoiIXunBODLAhi1MP78+aYgdev0RxDo5ISKedL2lcd2D15C//0ibA1T7GDtXyfEDrBVYp1LhAGsFDrThvruwFPlgVEy2EiZjyQu8HucIIREzkbnyqyo0jmPIdv53Lm+MdOVg1mkFW87uJ5G55Ei3MKdU1LbqL878aOpRD5zh9p/hODHGm3OIic7XHhVspusp/HCTAj/cpMClJy9QfRnlVzGj/Cpez5iJiIR0M8rFucWEKKghJmvaAgxZRe9Aq2jyGzyYdBIREevV9WgevAIXh2/E0+lXtN7r7wxHn0CqMFh+mHisDV6jYAuD494hOGqWvONFY+J8BvEg1ES6mpBQqn/0vZ3nb1Ofm//ZnS6I8zDqgvVOxFX/D29xoCNExIo6ysX75Z0jNOHZNxuoerMXm1//aNVa4zgGnh7SO4Hjbq2D2+N3U+fplXlg3LrjS6+1tGQNtGu/B0pKfobqqr+gC8/43i+HBMIoyi2FyZ1XwgZX6c2GDp3aitraGBnBifBoAAC4svg7CEx+Bl8d9YArP2kPoCLEpKH28NedDfDOu+SVc/pnDmCvmAemI1/v66O+GOZ1EIprqmBP9D04k0R0xyFzlovG2Z4NgB1zyKug91L5+KTd3plCHf/ng2id1vGeURd4WBoIJu3Gyo4pV1XCxgHc2nJqCsAyejs8r8qBrYMsYVPcPjjz3BfmdZ9KzRuw0RkSHKxE5wzy8pTg6nobppubgslHjROsvL7yCLRoTQeQr8wxBqN2ztC81f/IzjsZFAWxzvT6fr8QBMGJaQAAYDtzPFyNTISpH9N7KMHnuNfhopJK6NCe/r8FAJhzV5wS/uzn5F7D/W2p9jCzHaKxjGoBACCjqgDilSSNE3Pkj9MGoapBE2xmjAWbGWNhiBW9/uq6evAIjASPwEi2Tfi3E2Lz+RtwLvQRtHmuhvGL9sG44X3JvIJc6PJOG3ivFVF/tm6hYxxgTYz8Uo8DHcBIuouWiBMYfnFrPT325lr2GJATIerjl7+e38XjqQFUGXtzLdbV0q9r2tQL+qKspgbLaoj//e2kVByzX94BIr8mDRERT6QSpxPfrAOiMZNM7dnzuOj0V15fY+NJSQGOPHNI1K5qaMB9AfdwX8A9tm2AtQIfZ+fjTFfyBpBepL9jCSJx/33dLsB89LdVUEdExPkWh3C+Bfnck8ycMCkpt1HvqaoNwfrqK1iZS4IA1ZTaYGWuKaqqr2uc53YjjCoMRtgQtUVeaTlbGKSkF7DnkY+0/8ZSy/NEbcP8NlBFCKF6QJukOzVwu6T0q6tELIRQwuW3a8MAazKGCWjD1IUQqBT4eD2S7stCU8YIxmVSNGf8bpgaZAsTO31MtfGlYgAQ1aNKkqDFWyaQl/sxdOwUCUL45RyEyZ1XstIuH5sXuICV83fQtoNm19J3jTinjLG9e0LgqsWyY48kczbBDvFfvVijH2wceAUcrM/C262NoGt3YoFQWVEDA030l6Im95B+cvuliaUWubE/75gNUyw+E431S3OGvu3ek5RsmzVtCmdDH8F0U+lEf/3sneHaatqe1XSZM+xaOg3GD+0NpsvI+qJcuTUNuUwyIjChHYVhHvXFxOHc3Gth0tkWdl4l5lcDNjqzx+Pm02HcOO5zqdVq6N2bfvOKf54HA7t1hMHrnOHRbu4zMPValQqMmsv/yzV7i5jc1ZaQTTOjtjsB2mqX7hZ9Qax+hlg5Q6yzFSTlFEKfzu/Bg50kweu7rYyg1Vst2H4AgF7dObMqXdIKtX3rbRjub0tJsweH/ahxTsjEnZSka/PQg+3jS7bJ5TnwXcheqo+ZK2zTFeM3HYFYZyvYcyWY+txCDLPeD+G/0+mH+La6x+9EstlSElJyYcAHncDtrxD4cSYJ6anz5hkfmhiZoeyjKeJIR47xF7U+LfQFI7EK20ILEymJVtgvV/fPDkNdoEnalevr46DAWpV0UHcGjgkzJdsPJ62gSl2DdMp4KTwovIYPCsmmSGC+D57J2IeB+VxYSDPjNVgvkZHBzHgNmhmv0drG71vw2RZRmy7IKZF3XVU10PrXoUuJBJGaU6TTtaWgyQ1YDg+C6Q09NzsvDPXl3ogYCbemXt5tVwqD1irYgoi47Mh5/PxXF7Yw7Y2FUbZE8lZcuoPJOYU4eI0Cpzq449HroTjEitxLSq+pK+beJRtzRbVESn5UwkVBqxKEqZTCy0iu+up85RD6VLeA6FIYYK3AAdYKtP+Le8s4fDYYD58NxhshOkVKezVJtyk0g9yaZ9CpZU8A4HQ53hkPYOuQObApVpy4UUq/I3xSUuTPc34bd4s2zRjeoR8lvTKIKH4C843Hw9GUqwAA8NMHtF5uZ6IXTOo8TDRPCpM76+eV9tTWCuoa5G06HeK/gn8YSUsQS3ofZMdsHHhF433yap6D81PylN45xBuu5XnCh++awogOEyCs6AbUqWvA7EUw5roakoVVKnmiX5ozJdUy51LSr9R4fdCp3buyfZdjE8HchEsuaPGFKew6JzbsXz+b2NIKJd3XAceFh+CrJV9K9hk1by6p05XDo91WMPW3Y3B1A5HoXX6aAYsOceZ67it0C1S+NNQdDo+Q3lvgI9iBvHFYTSOmV3yJbvGXw0VtmvD5jF3wyUfGsG7pBOjamZh3eo1eTY0Z1I4LMj7m+mbZ/+c3CRtvzunHcZYZez68Tzew8faHSzGJbECmL3e7wY11P0JURjaYdu8iutZAG2fWEy3e0Qqq6+rZtiWzxX4Du8OCAQBg3fDRui9YEyMjIto/+hp3JligaxIt5Sy4T3SRfllEOhgVQPRtY67ZS9L+p/52ku2hhUmISOtu+RDWhX3rol1F86tVtVitqmXPtUGbXleqf8DOvVirUuGZaLl0NkSi2x43lW3Jr0nH7XFTJcvLIl4ZhnfyubcOXaVRXcYJJWFdr60PsouUOGzFHrQ8QCwahi5VsNKvLpAyGbviHY4V5dU46WN70fgJw7awRRe435W2ZJHDwoNnccoOd0qiraqtY4suGHp1Iw69uhFH+Nmz50yw8+F+m/Rajz64H0EC7adnit86GEmXAaPD3f/En9Xpzg8WhTdsVEm3n53ilQMr9bNTYHlNLf7TUT4GOCPlDrBWUDrdzyyIyabQekFGr/vyJmM3c/9E/xw33PxoOnVFIekiIn4WIE2sbsnElo75ogpryjC3uhQTlZmYqMykxupKur7ZoZhTXSQiXTkQ+9wuiIhYkD9N41hd0cdBgR/vFucHE5Logae6xelsDDBEqY0gdSHQ9bP3vXbSZQiWIV1+mzYwEcaYElVMfmdXvMNxm7UX+gjiNWsi2vCAGHT/1Yutzz54CvvbKtjSWJg3Vfu1GtQNuDWWqIz4pFvLi1DGb78UQ0egq66rR9MdB9Duon62uaPNndjyupGRMxqLlTsxI2c0IiKq1bWY8ryTxjnaSLeBlxXhdFgMO+fEvUhqXnpRCdr5aP7bCDfOlridF41hyFZf0tXqBmzS/ksorcsH+0HSbn5mXUher+H+tnBv4jb4NECcSroJAEy9vZN9Felg9C50bNkWur7dAbq+3UHj/W+P3w3nM++K2id3Hg6dWv6XxAwadWoVlJYyym6iwqirE2+o6Yt+v+0BAIBJ/eh4vYeSfhKpDFb2+QN8s7lcShmVcewmWmPDL82ZVRlM7mHFlpeB9V7pHF987P4XianqstlHy0iCiPQsqn51x49guswZSiqqAABgvoPYnfXSc+JyzqgaGDBxF4TxF8553IOI+ymQGKs9J5xajfBdn9Xg9KML/LB1rqj/X5PFacP52Ot4FeZNJV6A8bHPNY5dOOsAGLVsAVM+d4CFs+RzazUgQgOqoU6tAgAA//HW4D/eGt5q2pxN1R41ZTvsHDqXTdPOoP8WZ9hz6x5MG0yi3dWptLs1M7jrs54trxutW02G5s17QrdO5H87r2ghvN1Se/wMAACPkGjwCCFmhY9zCiC3rAJ+8wuCgZv2sGPmDRsC/X91Bu/lFvCbXxCrXojPzoOkvCIoqZL29GTAD3YDAHB40Qx4/CyPLQAvuYkGoF3SLanLQ8cE3fIvNQakJFZ+W1ZVIdXHl3Slyq1cIolnZXbG+vpnmJXZhTIZQ0Q8vcePqlcoq0RrMO+1BpXFnNPHDPdTeDX+MaYWFuv5Cd88GMl3jslGqk0bfE/d1yrpKotJ+qZD9udxxyoPqs//TCj6nwlFRMQPN72atJhVVaKXyVhUqHROuvxcpWS7EIykO9ReOtvyhBFiqTkuht64mTuV9iA8su8aHtl3Ded/pcD1y6Wz5iIiuj69iUOvbsTx13dgaR39W+TnVAvIls/UzGDT5Rtax7wufBPkzp57pUbg2jBv3PbQlxrDSLfpOcO1Srr/DjBxjRc82ErVpWDiTpl/vh6PtNcBKdJdHLobM6sKJPvlrBqE12OINi/3U62k6/rrOTTrtAJj7nE73I1hz8vH6qhloralEQvxp/AF+FP4AratrJ4jiWURP7zSPXVRFQjH6DLHZYsPHrIXv36Z9dTdbVrhzXkJVdVwuk+GaGtUdayt7u0c+nXaLtYcj6bYUm03fWPw2mXN7rS6gK/TZVQDcybvYklXWcqRopB0EREnj9rGnk8YsYUqmsCoFxARP/bl1HZ80rV7eE7Xj4GIiMYuTvi8rBRvpqXgYPd9eDMtBW+mpWjtk0J0YDxGBxK720ltfqAKg48ubsePLm5HRMR+5zez5e8IJrWS85PTuDnuD9kxfCQU5lMuwLN9TvO7X5107z9Lx/vPiBH1Z3sOY+TzLBzqJDbsf1VoIs9tcX+K+qV0utlVZCPALztMq64XUUy6DPguwo2Jn8IX4OqoZRhRTJu03S+8KyLdnOpszK/JY+fxsTnOFjfHcWSjTZeriVDZ+6UXsu1SJmavgg83KdDS6zJaetEJPk2X0ZtnfNLlgyFg5sg3Fdv0iDPPS0/Jx4mmmyRJl7+R5ul+l7S1mI+IiDaTd4jGU3MFpLnb4RJFuo/juf2JoweuU/PYtT3jnBL+XbC6SVysjV3EukhNfXzwyVVItgysw8mDOLmsAOfcPqqVcBvqk7EsxxTLckxRmdWNPS/LMRWNVWZ103itPWf1d/VlSFWKdKUk3ITCfKo+94IXv/rqpHsnJQ3vpBBvqoeZORj5XJxcblfiGY11RMTxt6xEbXzMu7ddY7+uyK2Wfu1XqXJFHmnCwsfMvusanXQRpSVdhnCFpMvv50NZV4rKOjoehK6ky9TVEimZp/VZL2vX29hQNZB4HfqQrhC62unW1pKNKP6G2oRhW/DiIRJzw23jacl5/1/AJ1Kf5tYCCgAACsFJREFUpwlUm1Tf8gCxLT5DrnyiFUq6nk7yWbN1gTKrG1UYVBUvQ2WW8YvzlVhXdQnrqi5Rcx1OXMePf9yNh3w0Z+QurCWC2cpITiiTIt2Jgavx58jdsqS76tplqvDw6h5pR+6Hscf14z4H065dYNDOfRD3izjObAOq2TgMUnU59Dq9AwCaQK/0HfBNH1PY9glnc/dnUiTYRwRA6nxb0Rx+G1Pv2LI9NS47qwt07BQFzZrRCff8cg6C115/mLfaDISY3HkltG7TSuOamYj8eyZMAfO+/eELz2Nw04L2urrwNBF8niTAiWkzJa9Rq64Fo6ZGcOSTEwAAsCTie6pfjQ3QtInY9rZNC3EsCACxDa7cRtqpsC0wpScJabjnwhr40MQYLL9WQH2dSnK8pmvx76cNCTn5MKAzyRwybMVe1gMtJCEdAEj6lXEm4ngTcra6wjQ9cnhLJqXL18snAgDAou3z2LbwZ5nw/R/nIMHBSqudrhrVVNB9ffvfFNKWyW/8aOrjw1/pTh358C0mMa2bNmsKuRUV0Okd4snZa48CmjVtCg1qNaSu0S0xrRRatXeBVu0B1Kon0Kr9AWioewjN3jKhxpj/cxDcikqC2eNMJK+hQhU0b9IcrKJtwGPEUaovYMweNnYzvw0AYFLQGjiY/BcAAKzszf0f75/wEhvimhhZ46NCAq8q6fb0dGBLjYr2BPJ4KraXtI8IwJ6eDmgfEUBdQw4F+V8hImrV6UpJvHLSrvGBXWxSP/45Hz5PEnDBJW/ZdemCSlWF9kE8nNjly0qrezeIvwc+1Go1O3aNuTPbbma8BoMuR73UeoWQ20hbtsdbZJsrJ+m+KhgJV3hERMxNF7/297dV4JNc7eoAKQm8RiXWS/NxLz9J+4JfIDtFPsZDSox03ITSAiWmxKRT/R8cpjf2jF2cWAlXqk9K0tUVOeXluPQSmd/TmVx76kkPTVMQEVGtrhQVBnzJVygF6wKnx3tEbXxJl0FoUTx7nlJOVEaMzlfTRpquUcb+tqRbrdLsfun48BY6PryFPT0d2HNExPUhlyTH19aGYVHhAiwqXKCVdKVgO3c/1teJ1yQk2vGn3EVj5Ei3QU3cdeOVmnehdz0mKhenx1u1rvPvjtBnz7Fe1SBqT8vl1EH6kq5QQ5JfJv+AEtrqzpvyIrBJeTWe2KLfxhSzsccv/D6pcwZuSXck+yYaWeBEIwud1zDRyAKrK2rQauxmnNZuIdvm7XwVw/wfUqT7/VXuN5hZpsTMMiVLulJ9r0K6+rpP8yFPpg1sX331TVTVPXrpe7wBvB7SPeEfLtneIPgvSM3W3a+eId09sfKBmhlkVpRiT08HzKwQx7lFRJx740+d7/uyYEh3y93biKgf6TLgk+7SiG9FhcGbIN3okieS7dYx+6jyd8AAG+1maPsC7olI+XVDEwHz60OviDeWGNIN9dXtDUOxVOxZxZDuTc9gjLoVp8/S/7aoLuX+hnxSrinTzxTxu42aOUFx8rZe12Mw/FtRgoHGJ13TxfIf9ksrOir7qJX7NY7XhKrKWpz4yWac+Il2UxNlaRVV9AFffaDPxllBZSXeTkvFvi7k1WXEMemI9Obn6ODmDJkujfhWq6TrnuqC7qkuuP7hcnRPdUGvDPKaZhZkiYiIvyUcp+rMsbhWPvCMFBaFbcVvQqQ3q8yCLKkih2XuPrJ9+kD44JbCABsFRbxCEmb6I1IzhVMbDYwaQY5YpfqEGOlLbx7vXSkOeYqIuGqUHV4/SQsjfEn2ogvxsppoZIEWvVbh3O4r0KLXKi2f4D8TE5ZxnqS2+y/j8G93U0UIv3sJojbhHMG8lyfdImWlqDh6klf5b7cTIqkVRLUyXazAz3/mzMluRyejsrIaPfx182PnE2xUWCoGXovDqLBUjApLpcYddPIVTkWLyfIpbaQgZb0gVxC5LAVldZql93p1HSaVcdLK/qfyRKWpjw9tkq5ZkCWmVGSiWZAlVtRX4Z38aHxQ+Agr6qtEhGwWZIluqeLXx6/uWOH3oZupwozXhXT1gVyMUsbvXet8Acl63n9I1U/cjcTiiipc4Cqt0+59QrNZFOP+eyY0RnbMF9ekr6GNdD/lEW1sMZcZQRfVwvf9OCuSlJh0ds5NT27HfnqHRTit/UKc3mGR7HW8z4fjuC9/Y4sQM2aRWApmH6ynjgwK83RzNGFgsUg63kFBYblk++sCQ458kpy8kghLcpKub3C8ZPu569EYmUi+Pz6R4+tSLzCky8einWeogkhIVxsmj9jKSrRCyXbhjH24cAb9Sjv7y9/xe3Pyo7hzQ/wHWfHtYa335EOXjbOI2wkif/+CmkyqfjHTRTSvpC4f7WLNcfOj2VrX4Z99XKf1Nqg5vWhEcSLeygsXEWtRrZKtC/vYz8mrmwVZyqoXhKRb1yDW2UWnETPCh+nZGJuRg4jyxIpIcqaVVddgeXUtOzajUPcg56Z28mqO0VvJ9yCUhoUwPraTLXzw4y3Ika5PBvdQ1UenuyD4KCaW0imO5KThVTcu46wLnrjqBmeO1Pco2ewsqazG2noVK/SM3yYfxEUKrkduoaMTscs978MJRMeOE2k6mOcc5Gh1Cs0+WE8RsJCEERFPxcg/oOQQEqqdH06cuidqY3K26QM5yVSbpDt6oXgTTuq6PLw50uWrEZjz29HJOqkXpn5GvHf4hCtFwnwI27fZnMVtNme13kt0766rRPWaKm43skGw+RNTcoe1Dz2aYouHk63RLtYcDydbIyLi74k/4sGn3Kbh/qeWsvakbil26JZCvI78s4+j4vFynda8MZbL3iBFuox6QRPp3i+kVRvRJU+oMVvijuLxZ5d1lnSXH6Pzn/EjNgkh1Weu8MClbud1knS1oZq38SmM44tIE66QdBERv3SS9kzSBR4XQ9Fi/TH0uBiKC37xwPjkHDxwijPYz8gpxoISsuF3NSgOf7CV1zUuuOqNxq5Eoq5VqbCgiuzoD/6XMw6x3oMPkogn3FqPK3j4xgOd1ufodBW9z9N7Moy0y0i+Bw7dwMpyEutZWVwhSbJC8En3QiL3Sj7GzJEtmto0YdqcV99LePxMnAGDgZQELOyTazvlG4F7PQP53W/GeqGxwBDpxE82Y3ZmMbrsJplhF83ksqa6H7iBf+y/zo5LT80XScoxkWmNvja7WHPcGjdP1M6XPBER/bLpDbX9Ty1xW9x80bzSOtqrhSHdlwnM3RhgJN1vHtCSl5B0pYiXIUrmmJRbyJYB1gpMyuXiZjASGl9SQ0TccIbLAlwtYS3yJvDblUAqwtjLRBkbOW8Xzl3rjsFRnCvtxVvSuvuR83bh727yKXmMXZ1Y0kVEjM4jUvKYLfTb3LXYp1haqXtAfIZ0haoFpn7gkP5xG+RIVwiGaBevFL/ZBd19QpXqamlrFiGBa4OUZIuI+Ouhq6I+uXl8+AYniCTcnx3ZDfP/W6T7d0btiywP1QK7WT7p2j+ahYiI2+O5QEHa9LaKx8RDja9e+HcRrwGvjpHzduHIebswOCoFE1Nz8UHMMxw5bxfVx9QREa/dS5S7lAH/NyHLq00QUaPvhP7uFgYYYIAB//FoItehzQ1YdqIBBhhggAH649/vEG6AAQYY8B8EA+kaYIABBrxBGEjXAAMMMOANwkC6BhhggAFvEAbSNcAAAwx4gzCQrgEGGGDAG8T/Agl7n5WJl29aAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 获得wordcloud 需要的文本格式\n",
    "\n",
    "with open(\"/Users/autumnhui/Desktop/公众号/标题数据.txt\", \"r\", encoding='utf-8') as f:\n",
    "     text = ' '.join(jieba.cut(f.read(),cut_all=False))\n",
    "#      print(text)\n",
    "\n",
    "backgroud_Image = plt.imread('/Users/autumnhui/Desktop/公众号/a.png')  # 背景图，生成图片的大小为背景图的大小\n",
    "\n",
    "# 词云参数设置\n",
    "wc = WordCloud(\n",
    "      background_color='white',\n",
    "      mask=backgroud_Image,\n",
    "      font_path='PingFang.ttc',\n",
    "      max_words=2000,\n",
    "      max_font_size=200,\n",
    "      min_font_size=20,\n",
    "      repeat=False,\n",
    "      random_state=50\n",
    "      )\n",
    "\n",
    "# 生成词云\n",
    "word_cloud = wc.generate(text)\n",
    "# word_cloud= wc.generate_from_frequencies(frequencies[, ...])\n",
    "plt.imshow(word_cloud)\n",
    "plt.axis('off')\n",
    "\n",
    "# 输出\n",
    "wc.to_file('/Users/autumnhui/Desktop/公众号/输出结果.jpg')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 查看词云参数\n",
    "?WordCloud"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
